我一直在使用Dask处理大型数据帧,并执行联接/筛选器之类的操作。最终的结果是一个数据帧,我知道它有8行。但是,如果我的dask数据帧是f
,在这里我检查f
,我得到npartitions=81
和Dask Name: assign, 10633 tasks
。为什么?我花了将近5个小时写了一个.h5文件,才发现结果中只有8行。有没有办法加快速度?
分区数为81,这似乎太高了。我把它降到5,但还是花了4个小时。
这不重要。最后你会有很多空分区,但这没关系。如果你对此感兴趣,那么你总是可以调用df.repartition(1)
。
输出的分区数是输入分区数和所做操作的函数。然而,它没有考虑数据的值(所有这些都是在Dask查看数据之前确定的(。
如果Dask速度较慢,那么我建议您查看Dask文档中的"了解性能"页面,以了解原因。
https://docs.dask.org/en/latest/understanding-performance.html