Передача параметров в задание dataproc pyspark
Как передать параметры в сценарий python, вызываемый при отправке задания pyspark dataproc? Вот cmd, с которым я связывался:
gcloud dataproc jobs submit pyspark --cluster my-dataproc \
file:///usr/test-pyspark.py \
--properties=^:^p1="7day":p2="2017-10-01"
Это возвращаемый результат:
Job [vvvvvvv-vvvv-vvvv-vvvv-0vvvvvv] submitted. Waiting for job output...
Warning: Ignoring non-spark config property: p2=2017-10-01
Warning: Ignoring non-spark config property: p1=7day
Found script=/usr/test-pyspark.py
Traceback (most recent call last):
File "/usr/test-pyspark.py", line 52, in <module>
print(sys.argv[1])
IndexError: list index out of range`
Ясно, что не распознает 2 параметра, которые я пытаюсь передать. Я также попытался:
me@my-dataproc-m:~$ gcloud dataproc jobs submit pyspark --cluster=my-dataproc test-pyspark.py 7day 2017-11-01
Но это вернулось с:
ERROR: (gcloud.dataproc.jobs.submit.pyspark) unrecognized arguments:
7day
2017-11-01
Шаблон, который я использую для передачи параметров в заданиях улья, не работает для pyspark.
Любая помощь приветствуется!
Спасибо мелисса
2 ответа
Вторая форма близка, используйте '-', чтобы отделить аргументы вашей работы от аргументов gcloud:
$ gcloud dataproc jobs submit pyspark --cluster=my-dataproc \
test-pyspark.py -- 7day 2017-11-01
Это сработало для меня для передачи нескольких аргументов -
Отправка заданий gcloud dataproc pyspark --cluster <имя_кластера> --region europe-west1 --properties spark.master=yarn --properties spark.submit.deployMode=client --properties spark.sql.adaptive.enabled=true --properties spark.executor.memoryOverhead=8192 --properties spark.driver.memoryOverhead=4096 .py --arg1=value1 --arg2=value2
или просто сказать -
gcloud dataproc jobs submit pyspark --cluster <cluster_name> <name-of-the-script>.py -- --arg1=value1 --arg2=value2
Всего наилучшего !