我明白,如果我在一个列表中存储许多Dask数据帧,我可以并行计算所有它们
result = dask.compute(*container_list)
但是如果我将Dask数据框结果作为值存储在字典中,我该如何做类似的事情呢?(如果containe_dict
是字典
result = dask.compute(*container_dict)
不能工作
我能做的最好的是用容器遍历字典,但这并不理想,因为我们现在运行dask.compute
多次而不是一次。
container_dict = {}
for index, value in enumerate(comb_dict_stock):
container_dict[index] = ddf.loc[index] # index ddf to get the row for index and value in dict
# compute all the dask dataframes in container_dict
for key, value in container_dict.items():
container_dict[key] = value.compute()
dask.compute
可以接受字典,并且只计算其中的任务对象:
from dask import compute
from dask.datasets import timeseries
test = {'a': timeseries(freq='1h'), 'b': 123}
result, = compute(test)
print(type(result))
# <class 'dict'>
请注意,compute返回一个结果元组,因此要只存储感兴趣的字典,请使用元组赋值。