我正在尝试将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
是。