我对为什么我的 dask 程序没有产生任何输出感到困惑,它只是在提交后挂起。我已指定使用进程而不是线程,并且可以看到所有内核在提交时启动(如此处建议:dask 计算未并行执行),因此它似乎在计算但从未完成。我只是想在长文本文件列表上运行一个简单的正则表达式。我错过了一些明显的东西吗?
import re
from os import listdir
import dask.bag as db
import dask.multiprocessing
dask.set_options(get=dask.multiprocessing.get)
loc = 'D:\\...\\text_files\\'
txts = [loc + i for i in listdir(loc)[:10]]
# Load data in parallel
f = db.from_filenames(txts)
f = f.repartition(3)
# Define the regex
regex = re.compile(r'\b[A-Z][a-z]+\b')
# create function to parallelize
def reg(text):
return regex.findall(text)
# distribute the function over cores
output = f.map(reg).compute().concat()