Как отправить операцию map_blocks Клиенту - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь по частям оценить функцию в массиве dask. Я могу успешно сделать следующее:

import numpy as np
import dask.array as da
arr = np.random.randint(0, 9, (4, 4))
darr = da.from_array(arr, chunks=(2, 2))

def block_mean(block):
    return np.array([[block.mean()]])
r = darr.map_blocks(block_mean)
out_arr = r.compute()

Как я могу повторить это в Client? Я попробовал следующее:

import numpy as np
import dask.array as da
arr = np.random.randint(0, 9, (4, 4))
darr = da.from_array(arr, chunks=(2, 2))

def block_mean(block):
    return np.array([[block.mean()]])
r = darr.map_blocks(block_mean)
c = Client()

# The following does not work
out = c.submit(r) 

1 Ответ

2 голосов
/ 14 февраля 2020

Если говорить очень кратко: вам вообще ничего не нужно делать; если вы определите Client, он станет планировщиком по умолчанию, а .compute() использует планировщик по умолчанию (если не указан).

r = darr.map_blocks(block_mean)
c = Client()
out_arr = r.compute()

Если вы прочтете документы для submit, она ожидает функцию - существует множество примеров ее использования.

...