本地Anaconda环境中multiprocessing.Pool.map()执行卡住,公司Cloudera环境正常运行的问题求助
本地Anaconda环境中multiprocessing.Pool.map()执行卡住,公司Cloudera环境正常运行的问题求助
我在运行下面这段代码时,内核会一直卡住无法结束。在公司电脑的Cloudera JupyterLab里运行完全相同的代码一切正常,但在我个人电脑的Anaconda Jupyter Notebook和JupyterLab环境中,代码执行到第一个打印语句后就停住不动了。
具体表现是:只会输出Starting...,之后就一直处于运行状态,没有后续结果。
我的测试代码如下:
from multiprocessing import Pool def squares(number): return number*number with Pool() as pool: print('Starting...') results = pool.map(squares, range(10)) print('It worked!!') print(results)
我原本预期的输出是:
Starting... It worked!! [0,1,4,9,16,25,36,49,64,81]
编辑补充
在个人电脑上测试其他基于multiprocessing.Pool的代码时,却都能正常快速运行...会不会是我定义的函数类型有问题?
- 发起网络请求的代码:
responses = Pool().map(requests.get, urls)
成功得到预期结果:
[<Response [200]>, <Response [200]>, <Response [200]>]
- 读取Parquet文件的相关代码:
path = 'jupyter/1. TCC/Htmls/' parquets = list(map(lambda file: path + file, os.listdir(path)))[:8000]
后续用Pool处理读取操作时,也能获取到预期的数据,这里就不贴具体内容了。
有没有人能帮我分析下,为什么同样是用multiprocessing.Pool.map(),自定义的squares函数就会卡住,而调用第三方库的函数却能正常运行?
备注:内容来源于stack exchange,提问作者O Basile
相关产品推荐
相关产品推荐

