dask中的多个sum()。compute()用于非常大的数据集

问题描述 投票:0回答:1

我有一个带有100个分区的dask数据帧(将100个json文件聚合在一起,大约45GB)。我想用大约15-20列的.sum()。compute()计算一些指标。对于每个.compute(),它需要很长时间。有没有更好的方法来并行执行所有这些sum()。compute()?

bigdata dask dask-distributed
1个回答
1
投票

是的,还有更好的方法!

简单地说,在你想要的每件事上做.sum() - 这会产生要完成的工作的懒惰处方 - 然后将它们的集合传递给dask.compute(),它将一次完成所有这些,尽可能分享任何中间值。

dask.compute(df.a.sum(), df.b.sum(), df.c.sum(), df.d.sum())

或者,你可以简单地选择你想要的列(df[[col1, col2, ...]]),然后做一个.sum().compute()

df[['a', 'b', 'c', 'd']].sum().compute()
© www.soinside.com 2019 - 2024. All rights reserved.