首页 > 解决方案 > 如何在最后一步结合 dask 期货?

问题描述

我启动了一个 dask 客户端并通过循环向它发送任务。

tasks = []
for order in orderIDs:
   tasks.append(client.submit(process,allcars.get_group(order),allorders.get_group(order)))

当任务完成时,列表中包含 pandas DataFrame,如下所示:

[<Future: finished, type: pandas.DataFrame, key: process-93e68764db2995b23271abe5d531a5bf>, <Future: finished, type: pandas.DataFrame, key: process-04395a45d14a1ac440363d52379f5e55>]

在 dask 之前,我曾经pd.concat得到一个最终的数据帧。这比附加数据帧要快。

但是,pd.concat(tasks)抱怨“TypeError:无法连接类型''的对象;只有 Series 和 DataFrame objs 有效”

当我尝试dd.from_delayed(tasks)它抱怨“AttributeError:类型对象'DataFrame'没有属性'from_delayed'”

如何连接(垂直堆叠)此列表的内容?有没有办法让这最后一步分发?

标签: dask

解决方案


您想将该pd.concat功能提交到任务列表中。

future = client.submit(pd.concat, tasks)

推荐阅读