为什么我的代码需要这么长时间才能在Dask Python中写入CSV文件

时间:2019-01-17 03:00:40

标签: python pandas dask dask-distributed dask-ml

下面是我的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)

创建100MB CSV文件需要6分钟。

1 个答案:

答案 0 :(得分:1)

在查阅Dask文档时,它说:“一般来说,Dask.dataframe分组聚合的性能与Pandas分组聚合的性能大致相同。因此,除非您使用Dask分布式客户端来管理工作人员,线程等,否则使用它而不是普通的Pandas的好处并不总是存在的。

另外,请尝试为代码中的每个步骤计时,因为如果6分钟的大部分时间是通过将.CSV写入磁盘上的文件来完成的,那么Dask再次将无济于事(对于单个文件)。 / p>

Here是Dask提供的不错的教程,内容涉及为任务添加分布式调度程序。