Обработка нескольких csvs в Dask - PullRequest
0 голосов
/ 05 октября 2019

У меня есть 24 отдельных файла CSV, соответствующих некоторым ежемесячным данным. Каждый из них занимает примерно 2 ГБ на диске, но точное количество строк варьируется. Я хочу предварительно обработать каждый CSV, сохраняя при этом их время заказа. Из того, что я прочитал в Dask docs, если бы я установил число разделов с .repartition(), он просто разделил бы все данные на 24 равных блока, что приведет к смешению выборок из двух месяцев в одном файле. Есть ли способ обработать каждый файл отдельно?

1 Ответ

0 голосов
/ 09 октября 2019

Вы можете предоставить функции dask.dataframe.read_csv строку, которая указывает на все ваши файлы

import dask.dataframe as dd
df = dd.read_csv("/path/to/*.csv")

Dask, скорее всего, упорядочит все правильно. Он упорядочит файлы лексикографически, а затем будет поддерживать порядок в каждом файле. Он может разбить каждый файл на множество небольших разделов, но при этом он сохранит порядок. Кроме того, разделение, созданное из вызова read_csv, не будет смешивать разные файлы без необходимости.

Так что, возможно, просто используйте разделение по умолчанию из read_csv и не пытайтесь изменить разделение самостоятельно.

...