【问题标题】:How to use dask to populate DataFrame in parallelized task?如何使用 dask 在并行化任务中填充 DataFrame?
【发布时间】:2018-11-16 07:58:55
【问题描述】:

我想使用 dask 来并行化一个数字运算任务。

此任务仅使用我计算机中的一个内核。

作为该任务的结果,我想通过 shared_df.loc[len(shared_df)] = [x, 'y'] 向 DataFrame 添加一个条目。这个 DataFrame 应该由我的计算机中的所有(四个)并行工作程序/线程填充。

我必须如何设置 dask 才能执行此操作?

【问题讨论】:

  • 在我看来,这与您在此 comment 上提出的问题相同,请查看我的评论以获取玩具示例。否则,请为此特定问题分享mcve。我不清楚[x, 'y'] 是什么。

标签: python pandas python-multiprocessing python-multithreading dask


【解决方案1】:

做这样的事情的正确方法,粗略:

  • 创建一个函数,对于给定的参数,返回总数据的某些部分的数据帧

  • 将此函数包装在dask.delayed 中,为每个输入参数创建一个调用列表,并使用dd.from_delayed 创建一个dask-dataframe

  • 如果您确实需要对索引进行排序,并且索引与您在上一步中应用的分块不同的行进行分区,您可能需要执行set_index

请阅读每个步骤的文档字符串和示例!

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 2022-11-10
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    相关资源
    最近更新 更多