在 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
将 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