我正在尝试向google dataproc集群提交一个pyspark,并且我想在命令行中指定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有人知道怎么做吗?它说它需要一个键值对列表,但是列表的格式是什么呢?
发布于 2018-02-15 02:59:08
您应该在单个标志中指定属性,如下所示:
--properties=executor-memory=10G,driver-memory=46G,num-executors=20您还可以使用':‘而不是'=’,以减少与其他标志的歧义,例如:
--properties=executor-memory:10G,driver-memory:46G,num-executors:20发布于 2018-02-15 11:12:21
列表的格式是单个字符串,用逗号分隔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属性配置语法,而driver-memory=46G不是,而spark.driver.memory=46G是。
发布于 2018-02-20 17:37:30
Pyspark属性名称必须与此list上的名称相同。属性的正确command syntax是:
gcloud dataproc jobs submit pyspark PY_FILE --cluster=CLUSTER --properties=[PROPERTY-A=VALUE-A,PROPERTY-B=VALUE-B,…]
https://stackoverflow.com/questions/48779612
复制相似问题