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