python - 从 Joblib 0.16.0 使用 Parallel 时出现 BrokenProcessPool 消息 - Python
问题描述
我遇到了一种情况,当使用 joblib (v0.16.0) 的并行函数时,我的代码中有以下几行:
with parallel_backend('loky', n_jobs=8):
lineas = Parallel(verbose=10)(delayed(apply_prior_ind_def)(g) for g in df1_merge.groupby(['S1EMP','CONTRA1']))
这里的问题是有时执行会在以下消息下失败:
BrokenProcessPool: A task has failed to un-serialize. Please ensure that the arguments of the function are all picklable.
此问题没有明显的追溯,因为无需对代码进行任何更改并仅重新启动终端,它有时可以重新启动执行并正确完成它。
希望有人在使用并行时遇到类似的问题,并且可以阐明它。
提前谢谢了。
使用 Spyder3 和 Python 3.6.5
解决方案
对我有用的是同时打开 2 个终端。第一个是无法启动的,但第二个能够运行整个并行代码。
推荐阅读
- algorithm - 为什么 or ("||") 允许路径和算法工作?
- reactjs - 如何从对象返回html元素
- angularjs - AngularJS文件上传抛出403 Forbidden - IIS Windows Server
- flutter - 在 Flutter 中让 Row 子节点尽可能宽(父节点的剩余宽度)?
- azure-cognitive-search - 模糊搜索和自定义分析器的 Azure 认知搜索问题
- stanford-nlp - GloVe 嵌入中的奇怪值导致导入错误
- python - M1 Mac - GDAL 错误的架构错误 [Django]
- apache-spark - 如何在 Spark sql 中使用外部应用
- database-performance - Cassandra 单 DC 多节点 - 读取查询缓慢
- r - 对于一列中的指定值,查找另一列中值的变化幅度,对于每个 ID