【发布时间】:2020-12-07 20:49:40
【问题描述】:
在 Amazon EMR 中,我使用以下脚本作为自定义 bootstrap action 来安装 python 包。脚本运行正常(检查日志,软件包安装成功)但是当我在 Jupyter Lab 中打开笔记本时,我无法导入其中任何一个。如果我在 JupyterLab 中打开一个终端并运行pip list 或pip3 list,我的包都不在那里。例如,即使我去/ 并运行find . -name mleap,它也不存在。
我注意到,在主节点上,我一直收到一条错误消息,提示引导操作 2 失败(没有第二个操作,只有一个)。根据this,这是我在所有集群中遇到的罕见错误。但是,我的集群最终会被创建并且我可以使用它。
我的脚本叫做aws-emr-bootstrap-actions.sh
#!/bin/bash
sudo python3 -m pip install numpy scikit-learn pandas mleap sagemaker boto3
我怀疑这可能与正在部署的 docker 映像有关,该映像使我以前的安装或其他东西无效,但我认为(对于我的 Google 搜索)通常使用引导操作来安装 python 包并且应该可以工作.. .
【问题讨论】:
-
你确定 PYSPARK 使用 Python 3 吗?
-
-
你能检查一下系统路径吗?即从哪里加载模块。
-
我发现 Pyspark 内核使用 python 3.7.9,而我可以从 JupyterLab 打开(在笔记本之外)的 Python 解释器使用 python 3.7.8。由于某种原因,今天它正在工作!我可以在 Pyspark 内核中看到我的包,但在 Python 3 内核中看不到。 sys.path 在两者中都非常不同 - 我想我在某个地方读到 Pyspark 在 docker 中运行。 Python 3 内核中的 Sys.path:'/home/notebook/work'、'/opt/conda/lib/python37.zip'、'/opt/conda/lib/python3.7'、'/opt/conda/lib /python3.7/lib-dynload', '', '/opt/conda/lib/python3.7/site-packages', ...
-
pyspark 内核的 Sys.path: '/mnt/tmp', '/mnt/tmp/spark-f8de6a81-563d-4.../userFiles-ac7efb7e-.../py4j-0.10 .7-src.zip', '/mnt/tmp/spark-f8de6a81-.../userFiles-ac7efb7e-0d15-4cb7-beed-6e9a7672f058/pyspark.zip', '/mnt/tmp/spark-f8de6a81-563d -4043-908c-30a00902d844/userFiles-ac7efb7e-0d15-4cb7-beed-6e9a7672f058', '/', '/usr/lib/spark/python/lib/pyspark.zip', '/usr/lib/spark/python /lib/py4j-0.10.7-src.zip', '/tmp/1607344911142-0/lib64/python37.zip', '/tmp/1607344911142-0/lib64/python3.7', '/tmp/1607344911142- 0/lib64/python3.7/lib-dynload','/usr/lib64/python3.7','/usr/lib/python3.7',
标签: python amazon-web-services pip amazon-emr