在 Dataproc 上的 Anaconda venv 中导入 PySpark 错误

Posted

技术标签:

【中文标题】在 Dataproc 上的 Anaconda venv 中导入 PySpark 错误【英文标题】:Import PySpark error in Anaconda venv on Dataproc 【发布时间】:2020-01-28 12:38:47 【问题描述】:

我用 Anaconda 作为附加组件创建了一个 Dataproc 集群。我创建了一个虚拟环境。在 anaconda 中并在其中安装了 RDkit。现在我的问题是,当我打开 python 终端并尝试这样做时:

from pyspark import SparkContext

它抛出错误:

Traceback(最近一次调用最后一次):文件“”,第 1 行,in ModuleNotFoundError:没有名为“pyspark”的模块

我可以在 Anaconda venv 中安装 PySpark,然后它就可以工作,但我想在 Dataproc 上使用预安装的 PySpark。如何解决?

【问题讨论】:

使用特定版本的 pip install pyspark。注意:使用前请记得设置路径(JAVA、HADOOP、SPARK)。 带有 Anaconda 组件的 Dataproc 集群将拥有一个包含 pyspark 的环境“base”。你有什么理由不想使用这个环境吗? 我需要在 Anaconda venv 中安装 RDkit。在“基本”环境中安装时出错。现在正因为如此,当我在“my-env”中安装 pyspark 时,一些 Pyspark 命令在 conda“my-env”中失败。 那您可以添加更多详细信息吗? Dataproc 映像版本是什么?您运行了哪些命令来创建自己的 venv、安装 rdkit 等。 我通过提到版本号解决了这个问题。在 "my-env" pip install pyspark==2.3.4 然后错误停止了。 【参考方案1】:

要在新的 Conda 环境中使用 Dataproc 的 PySpark,您需要在此环境中安装 file:///usr/lib/spark/python 包:

conda create -c rdkit -n rdkit-env rdkit
conda activate rdkit-env
sudo "$CONDA_PREFIX/bin/pip" install -e "file:///usr/lib/spark/python"

【讨论】:

以上是关于在 Dataproc 上的 Anaconda venv 中导入 PySpark 错误的主要内容,如果未能解决你的问题,请参考以下文章

Dataproc 上的 PySpark 因 SocketTimeoutException 而停止

Google Dataproc 上的 Spark 用户界面在哪里?

Dataproc 上的 Jupyterlab - 403 错误 - 无法读取未定义的属性“路径”

YARN 上 GCP Dataproc 上的自动缩放指标

如何通过 JMX 远程连接到 Dataproc 上的 Spark 工作器

Dataproc 上的 Sqoop 无法将数据导出为 Avro 格式