快速处理大量数据上的多个sum()。compute()

时间:2019-03-11 18:50:27

标签: bigdata dask dask-distributed

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

1 个答案:

答案 0 :(得分:0)

是的,有更好的方法!

简单地,对您想要的每件事做.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()