from-rest group by如何最大化单机Dask性能?

How to maximise single-machine Dask performance for from-rest group by?

我有一个很大的 CSV,我将其读入 Dask 并像这样执行分组

import dask.dataframe as dd
aa = dd.read_csv("large.csv")

# takes 20 seconds
aa.var0.value_counts().compute()

并且需要 20 秒。

但是,如果我将数据存储为镶木地板,那么同样的操作只需要 7 秒。

aa.to_parquet("large.parquet")
aa = dd.read_parquet("large.parquet")

# takes 7 seconds
aa.var0.value_counts().compute()

我可以做些什么来进一步加快速度吗?一般的问题是这样的:我有一个位于硬盘驱动器上的数据集(数据格式不受限制,但我只有一台机器,所以没有集群),如何最大化性能一个简单的分组操作,其中数据在磁盘上启动(即尚未加载到 RAM 中)?

我相信这不是 dask 特有的,而是由于 CSV 和镶木地板的格式化方式。

您可以通过仅加载一列来进一步加快速度

aa = dd.read_parquet("large.parquet", columns = ["var0"])

# takes 7 seconds
aa.var0.value_counts().compute()

可能还有更多的事情可以做,例如确保 Dask 使用更多的工人。