【问题标题】:Defining dask worker resources for a dataframe operation为数据帧操作定义 dask worker 资源
【发布时间】:2017-08-29 00:00:13
【问题描述】:

我正在对 dask 数据框应用多个操作。我可以为特定操作定义分布式工作器资源要求吗?

例如我称之为:

df.fillna(value="").map_partitions(...).map(...)

我想为 map_partitions() 指定资源要求(可能与 map() 的资源要求不同),但似乎该方法不接受 资源 参数。

PS。或者,我发现我可以在 map_partitions() 之后调用 client.persist() 并在此调用中指定资源,但这会立即触发计算。

【问题讨论】:

    标签: dask dask-distributed


    【解决方案1】:

    您可以在调用computepersist 时通过提供中间集合来指定计算的特定部分的资源限制。

    x = dd.read_csv(...)
    y = x.map_partitions(func)
    z = y.map(func2)
    
    z.compute(resources={tuple(y._keys()): {'GPU': 1}})
    

    谢谢你的问题,我去包含一个关于这个特性的文档的链接,发现它没有文档。我会尽快修复。

    今天似乎存在一个错误,在某些情况下可能会优化中间键(尽管这不太可能用于数据帧操作),因此您可能还需要传递 optimize_graph=False 关键字。

    z.compute(resources={tuple(y._keys()): {'GPU': 1}}, optimize_graph=False)
    

    https://github.com/dask/distributed/pull/1362

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    相关资源
    最近更新 更多