Google Dataproc Pyspark Properties



我正在尝试将pyspark提交给Google DataProc群集,我想在命令行中指定Pyspark配置的属性。文档说我可以用--properties标志指定这些属性。我要运行的命令看起来像这样:

gcloud dataproc jobs submit pyspark simpleNB.py --cluster=elinorcluster  —-properties=executor-memory=10G --properties=driver-memory=46G --properties=num-executors=20 -- -i X_small_train.txt -l y_small_train.txt -u X_small_test.txt -v y_small_test.txt

我已经认真尝试了我能想到的所有组合,用于属性标志:

gcloud dataproc jobs submit pyspark simpleNB.py --cluster=elinorcluster  —-properties executor-memory=10G, driver-memory=46G,properties=num-executors=20 -- -i X_small_train.txt -l y_small_train.txt -u X_small_test.txt -v y_small_test.txt

等,但我似乎无法使它起作用。一直给我这个错误:

ERROR: (gcloud.dataproc.jobs.submit.pyspark) unrecognized arguments: —-properties=executor-memory=10G
Usage: gcloud dataproc jobs submit pyspark PY_FILE --cluster=CLUSTER [optional flags] [-- JOB_ARGS ...]
  optional flags may be  --archives | --driver-log-levels | --files | --help |
                     --jars | --labels | --properties | --py-files | -h

有人知道如何使这项工作吗?它说它需要键值对列表,但是列表的格式是什么?

您应该在单个标志中指定属性:

--properties=executor-memory=10G,driver-memory=46G,num-executors=20

您也可以使用':'而不是'=',以使其与其他标志的模棱两可,例如:

 --properties=executor-memory:10G,driver-memory:46G,num-executors:20

pyspark属性名称必须在此列表上。属性的正确命令语法为:

gcloud dataproc jobs submit pyspark PY_FILE --cluster=CLUSTER --properties=[PROPERTY-A=VALUE-A,PROPERTY-B=VALUE-B,…]

列表的格式是一个单字符串,逗号分隔为k/v对,引号:

gcloud dataproc jobs submit pyspark simpleNB.py --cluster=elinorcluster 
  —-properties='spark.executor.memory=10G,spark.driver.memory=46G,
  spark.num.executors=20' -- -i X_small_train.txt -l y_small_train.txt
  -u X_small_test.txt -v y_small_test.txt

属性还需要是合法的pyspark属性config语法, driver-memory=46G不是 spark.driver.memory=46G是。

最新更新