spark-submit : передать переменную времени выполнения в скрипт искры

Я отправляю скрипт Pyspark/SparkSQL, используя опцию spark-submit, и мне нужно передать переменные времени выполнения (имя базы данных) в скрипт

команда отправки искры:

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.table_name")

Версия spark: 1.5.2
Версия Python: 2.7.5

Решение, которое я пытаюсь использовать, не работает. Ошибка: AttributeError: объект типа «SparkConf» не имеет атрибута «getConf».

Я ищу способ передать переменную времени выполнения при вызове скрипта через spark-submit и использовать эти переменные в скрипте.


person Shan    schedule 25.07.2017    source источник


Ответы (1)


Вы можете использовать обычный sys.argv

args.py

#!/usr/bin/python

import sys
print sys.argv[1]

Затем вы spark-submit это:

spark-submit args.py my_database 

Это напечатает:

my_database
person philantrovert    schedule 25.07.2017
comment
Спасибо за ваш ответ, был какой-то способ сделать это через --conf в spark-submit и получить значение в скрипте через getconf, но я не могу этого вспомнить. - person Shan; 25.07.2017
comment
Параметры, которые вы передаете через --conf, должны быть связаны со искрой, иначе вы получите Warning: Ignoring non-spark config property - person philantrovert; 25.07.2017
comment
Да, я получаю это предупреждение. Но было что-то подобное и для переменной времени выполнения, если я правильно помню. - person Shan; 25.07.2017