Страницы

Поиск по вопросам

воскресенье, 5 января 2020 г.

Чтение и обработка огромных файлов CSV

#python #pandas #csv #big_data


Есть 2 файла в формате .csv, размеры 60 ГБ и 1 ГБ. Мне необходимо создать на их основе
таблицу по ключам из обоих файлов (по типу WHERE и JOIN в SQL), а затем экспортировать
опять в файл .csv. Как мне это сделать? pandas такое не сможет обработать скорее всего,
просто оперативки не хватит. 
    


Ответы

Ответ 1



Можно воспользоваться Dask DataFrame вместо Pandas. Dask умеет обрабатывать DataFrame на диске - т.е. такие, которые не помещаются в память. Обычно Dask работает гораздо медленнее Pandas и его API гораздо беднее. Кроме этого можно прочитать в память только те столбцы, которые участвуют в объединении и фильтрации (если эти данные влезают в память), выбрать только соответствующие строки и дальше читать из CSV файлов только соответствующие строки. Но проще всего для данных задач использовать базы данных, например MySQL или PostgreSQL - они с легкостью обрабатывают данные, которые не помещаются в памяти. Кроме этого они поддерживают индексацию, что может значительно ускорить обработку данных. Кстати в большинстве БД существуют специальные утилиты для быстрой загрузки CSV файлов в БД: PostgreSQL: COPY, MySQL: LOAD DATA

Комментариев нет:

Отправить комментарий