[英]Running Jupyter PySpark notebook in EMR, module not found, although it is installed
我正在尝试在 EMR 中运行 Jupyter notebook。 笔记本正在使用 PySpark kernel。笔记本所需的所有包都是通过 boostrap 操作安装的,但是当笔记本运行时,它会失败并显示导入失败的消息:
An error was encountered:
No module named 'xxxxx'
Traceback (most recent call last):
ModuleNotFoundError: No module named 'xxxxx'
我怎样才能告诉 Jupyter 使用集群上安装的包。 顺便说一下,“集群”只包含一个主节点。 我猜 Jupyter 正在使用它自己的虚拟环境或类似的东西,这就是它看不到安装包的原因。
好的,经过一些调查,我了解到这些东西......
为了修改 EMR Notebook Pyspark kernel 中安装并识别的 Python 包,应使用以下命令安装包:
sudo pip3 install $package
这里重要的一点是sudo pip3
。
另一方面,如果我想修改 EMR Notebook Python3 kernel 识别的 Python 包,应该使用这种方法处理它们:
# Init and activate conda environment,
# in order to use its pip to install packages.
/emr/notebook-env/bin/conda init
source /home/hadoop/.bashrc
# Conda should be on the path now.
conda activate
sudo /emr/notebook-env/bin/pip3 install $package
...
诀窍是初始化 Conda 环境,它是只读的 state 之类的......之后,激活该环境并使用与该环境相对应的 pip 安装。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.