簡體   English   中英

如何在 hdinsight spark 中將 python 版本從 2.7 更改為 3.5

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM