[英]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.