【问题标题】:How can I install a module to a specific Jupyter kernel without use of ! or terminal?如何在不使用的情况下将模块安装到特定的 Jupyter 内核!还是终端?
【发布时间】:2019-08-21 03:21:49
【问题描述】:

我在 EMR 上使用 JupyterHub,但 Pandas 未安装在 PySpark 或 PySpark3 内核上。这些内核也不允许使用!。我尝试使用

安装
import pip
pip.main(['install','pandas])

但这引发了ValueError: I/O operation on closed file.

当我打开终端内核时,pandas 已经安装好了。

如果有其他方法可以安装到特定内核,请告诉我。

【问题讨论】:

  • 您应该在创建 emr 集群时应用 bootstrap .py 脚本(包含所有模块),因为所有模块都需要安装在每个节点上(如果您打算将它们与 spark 一起使用)
  • 我添加了一个带有 pandas 的引导程序,但它没有出现在 PySpark 或 PySpark3 内核中;它只显示在 Python 内核中
  • 你是如何在引导程序中安装的?你能粘贴命令吗?
  • 我有shebang,然后是以下命令:sudo pip install scipy scikit-learn pandas pyarrow

标签: python jupyter-notebook amazon-emr


【解决方案1】:

遇到了类似的问题,这解决了我的情况

#bootstrap
sudo python3 -m pip install <packages>
# set in $SPARK_HOME/conf/spark-env.sh or use the config.json template for EMR
export PYSPARK_DRIVER_PYTHON=python3
export PYSPARK_PYTHON=python3

参考: AWS EMR - ModuleNotFoundError: No module named 'pyarrow'

【讨论】:

  • 哇,原来你是对的!这是一个 Python 2 vs 3 的问题。
猜你喜欢
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 2014-03-28
  • 2010-12-15
  • 2011-08-12
  • 1970-01-01
  • 2021-05-07
相关资源
最近更新 更多