将参数传递给 dataproc pyspark 作业
Passing parameters into dataproc pyspark job
如何将参数传递给在 dataproc pyspark 作业提交中调用的 python 脚本?这是我一直在使用的命令:
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。
感谢任何帮助!
谢谢,
梅丽莎
第二种形式很接近,使用“--”将作业参数与 gcloud 参数分开:
$ gcloud dataproc jobs submit pyspark --cluster=my-dataproc \
test-pyspark.py -- 7day 2017-11-01
如何将参数传递给在 dataproc pyspark 作业提交中调用的 python 脚本?这是我一直在使用的命令:
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。
感谢任何帮助!
谢谢, 梅丽莎
第二种形式很接近,使用“--”将作业参数与 gcloud 参数分开:
$ gcloud dataproc jobs submit pyspark --cluster=my-dataproc \
test-pyspark.py -- 7day 2017-11-01