Dask bag map:为对象分配属性

Dask bag map: assign attribute to object

我有一组 python 对象(我只给出一个案例:代码中的 x),我想使用 dask 包处理它们。计算的结果值将作为属性(下面代码中的x.test)分配给对象。

import dask.bag as db

class Test():
    pass

x = Test()

def dask_test(x):
    somevalue = someprocess(x)
    setattr(x, "test", somevalue)

b = db.from_sequence([x], npartitions = 1)
b.map(dask_test).compute()
x.test 

上面报错:AttributeError: 'Test' object has no attribute 'test'

这里的波纹管工作正常。

setattr(x, "test", 'somevalue')
x.test

您应该 return 来自 dask_test 函数的值:

def dask_test(x):
    setattr(x, "test", True)
    return x