我正在dask bag上运行一个函数,将数据转储到NoSQL DB中,如:
def write_to_db(x):
# code to write into db
db.insert_many(x)
return
def func():
# code to process each element
for col in int_cols:
try:
x[col] = int(x[col])
except (ValueError, TypeError):
x[col] = None
import dask.bag as db
bag = db.read_text(...)
bag = bag.map_partitions(csv.DictReader).map(func).map_partitions(write_to_db)
bag.compute()
现在,当我查看dask任务图时,在每个分区完成write_to_db函数之后,它显示为memory
,而不是released
我的问题是:
released
,即蓝色李>func()
释放GIL
吗?有没有办法优化这种计算李>
None
值作为结果,但是这些值很小,我不担心。您的compute()
的输出将是一组None
(实际上,为了保持袋子排列,您可能希望将其列为一个列表)dask.delayed
的版本可能具有相同的行数李>相关问题 更多 >
编程相关推荐