繁体   English   中英

如何指定 spark-submit 使用的 Python 版本?

[英]How to specify the version of Python for spark-submit to use?

我有两个版本的 Python。 当我使用 spark-submit 启动 spark 应用程序时,该应用程序使用 Python 的默认版本。 但是,我想使用另一个。 如何指定 spark-submit 使用的 Python 版本?

您可以将conf/spark-env.sh (在 Spark 的安装目录中)中的PYSPARK_PYTHON变量设置为所需 Python 可执行文件的绝对路径。

Spark 发行版默认包含spark-env.sh.template (Windows 上的spark-env.cmd.template )。 它必须首先重命名为spark-env.sh ( spark-env.cmd )。

例如,如果 Python 可执行文件安装在/opt/anaconda3/bin/python3

PYSPARK_PYTHON='/opt/anaconda3/bin/python3'

查看配置文档以获取更多信息。

在我的环境中,我只是使用

export PYSPARK_PYTHON=python2.7

它对我有用

如果你想在spark-submit命令行中指定选项PYSPARK_MAJOR_PYTHON_VERSION ,你应该检查这个:

http://spark.apache.org/docs/latest/running-on-kubernetes.html

你可以在这个页面搜索spark.kubernetes.pyspark.pythonVersion ,你会发现以下内容:

spark.kubernetes.pyspark.pythonVersion  "2" This sets the major Python version of the docker image used to run the driver and executor containers. Can either be 2 or 3.

现在,您的命令应该如下所示:

spark-submit --conf spark.kubernetes.pyspark.pythonVersion=3 ...

它应该工作。

您可以通过在脚本的 shebang 行中列出安装路径来指定 Python 的版本:

我的文件.py:

#!/full/path/to/specific/python2.7

或者通过在脚本中没有shebang行的命令行上调用它:

/full/path/to/specific/python2.7 myfile.py

但是,我建议您查看 Python 出色的虚拟环境,它允许您为每个版本的 Python 创建单独的“环境”。 虚拟环境或多或少通过在激活它们后处理所有路径规范来工作,允许您只键入python myfile.py而不必担心依赖项冲突或知道特定版本的 python 的完整路径。

单击此处获取有关虚拟环境入门的优秀指南[此处]获取 Python3 官方文档。

如果您无权访问节点并且使用 PySpark 运行它,则可以spark-env.sh指定Python 版本

Spark_Install_Dir/conf/spark-env.sh:

PYSPARK_PYTHON = /full/path/to/python_executable/eg/python2.7

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM