2015-04-30 86 views
14

我有兩個版本的python。當我通過spark-submit啓動一個spark應用程序時,它使用默認版本的python。但是,我想使用其他版本。我試圖把python路徑放在我的.py文件的頂部,但它不起作用。 是否可以指定submit-spark使用的版本?如何指定spark-submit使用的python版本?

回答

0

您可以通過路徑列表來指定的Python版本的安裝在你的腳本中的shebang行:

myfile.py:

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

或通過調用它的命令行上沒有你的腳本中的shebang行:

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

不過,我建議你尋找到Python的,可以讓你創建獨立的「環境」優虛擬環境每個版本的Python。虛擬環境或多或少地通過在激活它們之後處理所有路徑規範來工作,讓您只需鍵入python myfile.py而不必擔心衝突的依賴關係或知道特定版本的Python的完整路徑。

Click here for an excellent guide to getting started with Virtual Environments[here]爲Python3官方文檔。

如果您沒有訪問節點和你這個使用PySpark運行,你可以指定Python version in your spark-env.sh

Spark_Install_Dir/conf目錄/ spark-env.sh:

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

其實我Hadoop集羣上的工作,我沒有訪問的DataNodes,所以我不能用virtaul ENV。 – A7med

+0

我已經試過你的第一個建議與shebang,但它不工作。其實,我啓動的Spark應用程序不只是一個Python文件,所以我不能做你的第二個建議 – A7med

+0

@ user4851438啊,對不起 - 檢查更新 - 你可以使用shell腳本來修改運行提交的腳本時使用哪個python 。 –

8

我我不確定Spark的最新版本,但在較老的版本中,您可以在conf/spark-env.sh文件中將PYSPARK_PYTHON環境變量設置爲您所需的Python版本。

查看configuration documentation瞭解更多信息。

+0

我試過你的解決方案:我在'''''spark-env.sh''中設置了'''PYSPARK_PYTHON =/path/to/python''',但它不起作用。我使用spark 1.3.1 – A7med

+1

據我所知,應該在我發佈的位置設置任何環境變量。其他參數作爲鍵值對添加到conf/spark-defaults.conf。我已經更改了1.3.1文檔的答案中的鏈接,該鏈接的狀態與舊版本相同。提交腳本默認應在兩個配置中加載。 – benjamin

+0

謝謝,我已經看到你的鏈接,你有權利。但它仍然不適合我。 – A7med

5

在我的環境我只是用

export PYSPARK_PYTHON=python2.7 

它爲我

+0

不適合我。 –

相關問題