首页 > 解决方案 > 如何最大化 from-rest group by 的单机 Dask 性能?

问题描述

我有一个大的 CSV,我读入 Dask 并像这样执行 group-by

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()

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

标签: pythondaskdask-distributed

解决方案


我相信这并不是 dask 特有的,而是由于 CSV 和 parquet 的格式化方式。

请参阅查询基于 CSV 的 Spark DataFrame 是否比基于 Parquet 的更快?


推荐阅读