Иногда файл с данными бывает слишком большим: для простого тестирования того или иного алгоритма достаточно небольшой части данных, что сэкономит время, вычислительные ресурсы, и ускорит создание рабочего алгоритма.
В таком случае можно прибегнуть к простой конструкции rand() < fraction
, которая будет работать как в SQL, так и во многих других хранилищах данных.
Для выборки из текстового файла с помощью awk
алгоритм будет выглядеть следующим образом:
!awk '{if (rand()< 0.1) print $0}' data.txt > sample.txt
где:
0.1
— процент выборкиsample.txt
— файл выборки
Update:
более простым вариантом для csv
файла может быть использование команды shuf -n
из пакета GNU, которая:
- рандомизирует строки случайным образом
- выдаст первые
n
строк.
!shuf -1000 data.txt > sample.txt
Write a comment: