在 Dask 中将 Futures 作为参数传递

Passing Futures as arguments in Dask

Future 传递给 Dask Delayed 函数以使 Future 保持完整的最佳方法是什么?换句话说,我们如何确保函数将得到实际的 Future 而不是它所代表的结果?

通常语义是 dask.delayed 函数获得具体结果而不是 dask-y 函数。如果没有一些技巧,今天很难支持。

话虽如此,我推荐以下技巧:

把你的未来放在Variable

import dask
from dask.distributed import Client, Variable
client = Client()

v = Variable()

@dask.delayed
def f(v):
    return v.get().result()

future = client.scatter(123)
f(future).compute()
# 123