将参数传递到dataproc pyspark作业

时间:2017-11-28 20:31:00

标签: google-cloud-dataproc

如何将参数传递给在dataproc pyspark作业提交中调用的python脚本?这是我一直在玩的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`

显然,我并没有意识到我试图传入的两个参数。我也尝试过:

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

我用来通过hive工作传递params的模式对于pyspark不起作用。

任何帮助表示赞赏!

谢谢, 梅丽莎

1 个答案:

答案 0 :(得分:4)

第二种形式是关闭,使用&#39; - &#39;将参数的参数与gcloud的参数分开:

$ gcloud dataproc jobs submit pyspark --cluster=my-dataproc \
    test-pyspark.py -- 7day 2017-11-01