прочитать несколько случайных строк из файла (сэмплировать)?
dt<-fread("file.csv")
dt<-slice_sample(dt, prop=0.05)
Хочу сделать такое без чтения всего файла. Первые n строк нельзя, записи в файле упорядочены. Нашёл только это, на винде запихнуть shuf в fread нельзя. Получается вариант- только в самом файле вне R строки перемешивать?
Да. А в чем именно заморочка? Файлы большие? По 100 гигов?
csv большие. Долго читать, чтобы выкинуть 95 или 99%- как-то странно. И, опасаюсь, что просто в память не влезет.
Можно поконкретнее, в цифрах?
так может можно прочитать первые 100 строк, понять, какие колонки нужны, и потом импортирвоать уже только их?
Колонок там не очень много, там много строк. Пробовал так на меньших файлах
Кстати, красивая публикация была: https://habr.com/ru/post/547448/
Спасибо! Попробую буду осваивать. Кстати, fread заработал "по кусочкам". Оказалось достаточно минимальный объем виртуальной памяти поставить больше объёма файла данных.
прочитал статью, но для себя не изменил мнение, что data.table и fst для анализа будут всегда выигрывать у таких БД по скорости, да и по синтаксису, но последнее на любителя видимо
Соглашусь. Я пробовал пару раз работать, засовывая данные в sqllite, но работало неприемлемо медленно и функционально бедно. В результате всегда заканчивалось тем, что нарезал данные на много файлов (fst или qs) и работал с ними.
А вся структура на одном серваке была?
Даже на одном ноуте... По объему - сотни миллионов строк. Очень простое NLP на корпусе флибусты. Но в 16 Гб оперативы не влазит
Обсуждают сегодня