[英]how to change python version from 2.7 to 3.5 in hdinsight spark
我有一个运行 Spark 的 Azure HDInsightCluster 并验证它当前正在使用其默认的 Python 版本 2.17。 但是,根据 MS 文档,可以将其更改为 3.5,因为 Python 2.17 和 3.5 都是 Spark 2.4 (HDI 4.0) 支持的 Python 版本。
我尝试在 Ambari GUI 中将以下值添加到 Advanced pyspark2-env:
export PYSPARK_PYTHON=/usr/bin/anaconda/envs/py35/bin/python
export MY_TEST_ENV=this_is_a_test_if_this_gets_executed
但是在 Spark 中运行代码时,我可以看到它仍然使用 Python 2.7 !
此外,我在 Advanced spark2-env 中输入的任何内容似乎都没有被执行:当我在我的 spark 工作中尝试这个时:
import sys
import os
from pyspark import SparkContext, SparkConf
if __name__ == "__main__":
# create Spark context with necessary configuration
conf = SparkConf().setAppName("WordCount").set("spark.hadoop.validateOutputSpecs", "false")
sc = SparkContext(conf=conf)
print(os.environ["PYSPARK_PYTHON"])
print(os.environ["PYSPARK_DRIVER_PYTHON"])
print(os.environ["MY_TEST_ENV"])
我得到以下 output:
/usr/bin/anaconda/bin/python
/usr/bin/anaconda/envs/py35/bin/python
Traceback (most recent call last):
File "wordcount.py", line 12, in <module>
print(os.environ["MY_TEST_ENV"])
File "/usr/bin/anaconda/envs/py35/lib/python3.5/os.py", line 725, in __getitem__
raise KeyError(key) from None
KeyError: 'MY_TEST_ENV'
我找到了解决方案。
在配置部分自定义 spark2-defaults我必须将用于变量spark.yarn.appMasterEnv.PYSPARK_PYTHON
的条目覆盖到/usr/bin/anaconda/envs/py35/bin/python3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.