Я пытаюсь выбрать 10000 случайных строк из большого набора данных с ~ 3 миллиардами строк (с заголовками). Я рассматривал возможность использования shuf -n 1000 input.file > output.file
, но это кажется довольно медленным (> 2 часа работы с моими текущими доступными ресурсами).
Я также использовал awk 'BEGIN{srand();} {a[NR]=$0} END{for(i=1; i<=10; i++){x=int(rand()*NR) + 1; print a[x];}}' input.file > output.file
из этого ответа для процента строк из небольших файлов, хотя я новичок в awk и не не знаю, как включить заголовки.
Я хотел знать, есть ли более эффективное решение для выборки подмножества (например, 10000 строк) данных из набора данных объемом 200 ГБ.