#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
Комментариев нет:
Отправить комментарий