如何将多个参数传递给dask.distributed.Client()。map?

问题描述 投票:0回答:1
import dask.distributed
def f(x, y):
    return x, y
client = dask.distributed.Client()
client.map(f, [(1, 2), (2, 3)])

不行。

[<Future: status: pending, key: f-137239e2f6eafbe900c0087f550bc0ca>,
 <Future: status: pending, key: f-64f918a0c730c63955da91694fcf7acc>]

distributed.worker - WARNING -  Compute Failed
Function:  f
args:      ((1, 2))
kwargs:    {}
Exception: TypeError("f() missing 1 required positional argument: 'y'",)

distributed.worker - WARNING -  Compute Failed
Function:  f
args:      ((2, 3))
kwargs:    {}
Exception: TypeError("f() missing 1 required positional argument: 'y'",)
dask dask-distributed
1个回答
3
投票

你没有完全签名 - 也许文件不清楚(建议欢迎)。 Client.map()为每个提交的任务提取(可变数量)参数集,而不是单个可迭代的事物。你应该这样说

client.map(f, (1, 2), (2, 3))

或者,如果你想更接近原始模式

client.map(f, *[(1, 2), (2, 3)])
© www.soinside.com 2019 - 2024. All rights reserved.