Как передать несколько аргументов в dask.distributed.Client (). Map? - PullRequest
0 голосов
/ 03 марта 2019
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'",)

1 Ответ

0 голосов
/ 04 марта 2019

Вы не совсем имеете право подписи - возможно, документ не ясен (предложения приветствуются).Client.map() принимает (переменное число) наборов аргументов для каждой представленной задачи, ни одной итерируемой вещи.Вы должны сформулировать это как

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

или, если хотите остаться ближе к исходному шаблону

client.map(f, *[(1, 2), (2, 3)])
...