Почему мой код занимает так много времени, чтобы написать файл CSV в Dask Python

Ниже мой код Python:

import dask.dataframe as dd

VALUE2015 = dd.read_csv('A/SKD - M2M by Salesman (value by uom) (NEWSALES)2015-2016.csv', usecols = VALUEFY, dtype = traintypes1) 

REPORT = VALUE2015.groupby(index).agg({'JAN':'sum', 'FEB':'sum', 'MAR':'sum', 'APR':'sum', 'MAY':'sum','JUN':'sum', 'JUL':'sum', 'AUG':'sum', 'SEP':'sum', 'OCT':'sum', 'NOV':'sum', 'DEC':'sum'}).compute()

REPORT.to_csv('VALUE*.csv', header=True)

Создание файла CSV размером 100 МБ занимает 6 минут.

1 ответ

Просматривая документацию Dask, там говорится, что "в общем случае групповые агрегации Dask.dataframe примерно такой же производительности, как и групповые агрегации Pandas". Таким образом, если вы не используете распределенный клиент Dask для управления рабочими, потоками и т. Д., Выгода от его использования по сравнению с обычными Pandas не всегда есть.

Кроме того, попробуйте синхронизировать каждый шаг в вашем коде, потому что если основная часть 6 минут будет занята записью файла.CSV в файл на диске, то снова Dask не поможет (для одного файла).

Вот хороший урок от Dask по добавлению распределенных планировщиков для ваших задач.

Другие вопросы по тегам