【问题标题】:How to combine dask futures in a final step?如何在最后一步结合 dask 期货?
【发布时间】:2020-01-02 13:07:23
【问题描述】:

我启动了一个 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 obj 有效”

当我尝试dd.from_delayed(tasks) 时,它会抱怨“AttributeError: type object 'DataFrame' has no attribute 'from_delayed'”

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

【问题讨论】:

  • 您介意分享mcve吗?

标签: dask


【解决方案1】:

您想将pd.concat 函数提交到任务列表中。

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

【讨论】:

  • 谢谢@mrocklin。我会尝试你的解决方案,要么选择它作为答案,要么按照上面的要求提供一个 mcve。
猜你喜欢
  • 2020-08-19
  • 1970-01-01
  • 2023-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 2021-12-18
  • 2021-09-21
相关资源
最近更新 更多