我知道 dask 在这样的批处理模式下运行良好
def load(filename):
...
def clean(data):
...
def analyze(sequence_of_data):
...
def store(result):
with open(..., 'w') as f:
f.write(result)
dsk = {'load-1': (load, 'myfile.a.data'),
'load-2': (load, 'myfile.b.data'),
'load-3': (load, 'myfile.c.data'),
'clean-1': (clean, 'load-1'),
'clean-2': (clean, 'load-2'),
'clean-3': (clean, 'load-3'),
'analyze': (analyze, ['clean-%d' % i for i in [1, 2, 3]]),
'store': (store, 'analyze')}
from dask.multiprocessing import get
get(dsk, 'store') # executes in parallel
- 我们可以使用 dask 来处理流通道,其中块的数量是未知的甚至是无穷无尽的吗?
- 它可以以增量方式执行计算吗?例如,上面的“分析”步骤可以处理正在进行的块吗?
- 我们必须在所有数据块都知道之后才调用“get”操作,我们可以在调用“get”之后添加新块吗