python - 解包元组列表的 dask 延迟对象

标签 python python-3.x multiprocessing dask dask-delayed

我有一个函数返回两个元素的元组。使用 pool starmap 调用该函数来生成元组列表,这些元组被解压缩为两个列表。

def func():
   #...some operations
   return (x,y)

def MP_a_func(func,iterable,proc,chunk):
    pool=multiprocessing.Pool(processes=proc)
    Result=pool.starmap(func,iterable,chunksize=chunk)
    pool.close()
    return Result
##
if __name__ == '__main__':
    results=MP_a_func(func,iterable,proc,chunk)

a,b=zip(*results)

我现在希望使用 dask delayed API,如下所示

if __name__ == '__main__':
    results=delayed(MP_a_func(func,iterable,proc,chunk))

是否可以在不使用 results.compute() 的情况下解压延迟对象中的元组?

感谢您的帮助

最佳答案

另一个延迟函数可以解压元组,在下面的示例中,return_tuple(1) 的延迟值未计算,而是作为 delayed 传递> 对象:

import dask

@dask.delayed
def return_tuple(x):
    return x+1, x-1

@dask.delayed
def process_first_item(some_tuple):
    return some_tuple[0]+10

result = process_first_item(return_tuple(1))

dask.compute(result)

根据@mdurant的回答,事实证明delayed函数/装饰器有nout参数,另请参阅this answer .

关于python - 解包元组列表的 dask 延迟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66604014/

相关文章:

python - Pandas 切片不包括结束

python - ValueError : Expected 2D array, 得到标量数组而不是 : array=5. 5

python - 读取 csv 文件最后一行的第二列

python - 如何缩放列表中的每个图像? pygame

python - 在新进程中执行 Bash 命令

python - 我如何用 <div>$...$</div> 之类的东西替换 LaTeX $...$ 和 $$...$$ 符号?

python - 解析python中可以有多种格式的日期

Python无法分割数据帧时间戳错误

ubuntu - 在 ubuntu 上运行具有多核的应用程序

python - 生成多个同名的 python 进程/守护进程(不同的参数)