0

我使用的火花提交選項submiting Pyspark/SparkSQL劇本,我需要運行變量(數據庫名稱)傳遞給腳本火花提交:通過運行變量來引發腳本

火花提交命令:

spark-submit --conf *database_parameter*=my_database my_pyspark_script.py 

pyspark腳本

database_parameter = SparkContext.getConf().get("*database_parameter*")   

DF = sqlContext.sql("SELECT count(*) FROM *database_parameter*.mba_vb_view") 

火花版本是:1.5.2
Python版本是:2.7.5

我試圖解決的方案不起作用。錯誤是:AttributeError:類型對象'SparkConf'沒有屬性'getConf'。

我正在尋找一種方法來傳遞運行時變量,同時通過spark-submit調用腳本並在腳本中使用這些變量。

回答

1

您可以使用通常的sys.argv

args.py

#!/usr/bin/python 

import sys 
print sys.argv[1] 

然後你​​它:

spark-submit args.py my_database 

這將打印:

my_database 
+0

感謝您的回覆,有一些方法可以通過spark-submit中的--conf來實現,並通過getconf獲取腳本中的值,但我無法回想起這一點。 – XEngineer

+0

你通過'--conf'傳遞的參數應該是火花相關的,否則你會得到'警告:忽略非火花配置屬性 – philantrovert

+0

是的,我得到這個警告。但是,運行時變量也有類似的地方,如果我可以正確回憶。 – XEngineer