2015-11-19 55 views
0

SparkConf上pyspark不讀傳遞給​​配置參數。SparkConf不讀火花提交參數

我的Python代碼是一樣的東西

from pyspark import SparkContext, SparkConf 

conf = SparkConf().setAppName("foo") 
sc = SparkContext(conf=conf) 

# processing code... 

sc.stop() 

和我一起

PYSPARK_PYTHON="/opt/anaconda/bin/python" spark-submit foo.py \ 
--master local[4] --conf="spark.driver.memory=16g" --executor-memory 16g 

提交但沒有應用的配置參數。也就是說,應用程序的執行默認值爲master [*],驅動程序內存爲1g,執行程序內存爲1g。 Spark GUI確認了這一點。

但是,如果我用pyspark提交應用程序的配置參數都遵循:

PYSPARK_PYTHON="/opt/anaconda/bin/python" pyspark --master local[4] \ 
--conf="spark.driver.memory=8g" 

注意--executor-memory 16g也改爲--conf="spark.executor.memory=16g"因爲前者也不起作用。

我在做什麼錯?

回答

0

顯然火花提交也支持設置驅動器內存,參數的順序無關緊要。最後一個參數應該是python腳本的名稱。因此,呼叫應

PYSPARK_PYTHON="/opt/anaconda/bin/python" spark-submit foo.py \ 
    --master local[4] --conf="spark.driver.memory=16g" --executor-memory 16g 

或以下@ glennie-helles-sindholt的提醒,

PYSPARK_PYTHON="/opt/anaconda/bin/python" spark-submit foo.py \ 
    --master local[4] --driver-memory 16g --executor-memory 16g 
3

我相信你需要從--conf=刪除=跡象。你​​腳本應該是

PYSPARK_PYTHON="/opt/anaconda/bin/python" spark-submit foo.py \ 
--master local[4] --conf spark.driver.memory=16g --executor-memory 16g 

注旗--driver-memory 16G

+0

不工作:( – ianalis

+0

這是沒有意義的我。你可以在命令粘貼正如你試過的一樣? –

+0

我已經複製了幾乎完全相同的命令,除了文件名。 – ianalis