如何设置 Spark 以使用由 anaconda 管理的 pandas?

Posted

技术标签:

【中文标题】如何设置 Spark 以使用由 anaconda 管理的 pandas?【英文标题】:How to set up Spark to use pandas managed by anaconda? 【发布时间】:2018-11-14 02:27:57 【问题描述】:

我们已将 Spark 版本从 2.2 更新到 2.3,但管理员并未更新 pandas。因此,我们的作业失败并出现以下错误:

ImportError: Pandas >= 0.19.2 必须安装;但是,您的版本是 0.18.1

我们的管理团队建议创建一个从 anaconda 下载最新版本的 VM(使用命令 conda create -n myenv anaconda)。

我这样做了,在使用source activate myenv 激活本地环境后,当我登录 pyspark2 时,我发现它正在选择新版本的 pandas。

但是当我使用spark2-submit 命令提交作业时,它不起作用。我确实在spark2-submit 命令中添加了以下配置

--conf spark.pyspark.virtualenv.enabled=true  
--conf spark.pyspark.virtualenv.type=conda 
--conf spark.pyspark.virtualenv.requirements=/home/<user>/.conda/requirements_conda.txt --conf spark.pyspark.virtualenv.bin.path=/home/<user>/.conda/envs/myenv/bin

我还压缩了整个 python 2.7 文件夹,并在 --py-files 选项中将其与其他 .py 文件 --py-files /home/&lt;user&gt;/python.zip 一起传递,但对于 pandas 仍然遇到相同的版本问题。

我尝试按照 URL https://community.hortonworks.com/articles/104947/using-virtualenv-with-pyspark.html 中指定的说明进行操作,但仍然没有成功。

如何修复它并能够使用正确的 pandas spark2-submit

【问题讨论】:

【参考方案1】:

我认为您可能需要定义环境变量,例如 SPARK_HOMEPYTHONPAH 指向您的 virtualenv 中的相应位置。

export SPARK_HOME=path_to_spark_in_virtualenv
export PYTHONPATH=$SPARK_HOME/python

【讨论】:

以上是关于如何设置 Spark 以使用由 anaconda 管理的 pandas?的主要内容,如果未能解决你的问题,请参考以下文章

配置 Spark 以使用 Jupyter Notebook 和 Anaconda

无法在 Jupyter notebook-anaconda 中设置 spark home

如何设置 HDFS 文件系统以使用 HDFS 运行 Spark 作业?

使用 k-means 聚类时如何设置 spark 配置以减少洗牌?

如何在 Apache Spark (pyspark) 中使用自定义类?

如何在 Zeppelin 中切换 Spark 版本以使用 Spark 3.x