在 google dataproc 上执行 Pig 作业时,如何使用逗号分隔的多个值的参数标志?
How to use params flag for muliple values with comma seperated when executing pig job on google dataproc?
如何为一个键传递以逗号分隔的多个值。
命令 1:
gcloud dataproc jobs submit pig--cluster msm-test-cluster -e "set;" --properties foo=bar --params bar=baz,bar1=(f1:chararray)
命令 2:
gcloud dataproc jobs submit pig--cluster msm-test-cluster -e "set;" --properties foo=bar --params bar=baz,bar1=(f1:chararray,f2:chararray,f3:chararray)
在上面的 command1 运行 中很好,但是 command2 bar1 有多个用逗号分隔的值,它失败了,因为 chararray 和 f2 之间有逗号。如何逃避这个逗号。请参阅以下错误消息。如果有人知道解决方案请告诉我。
**ERROR:** (gcloud.dataproc.jobs.submit.pig) argument --params: Bad syntax for dict arg: [id:chararray)]. Please see `gcloud topic flags-file` or `gcloud topic escaping` for information on providing list or dictionary flag values with special characters.
Usage: gcloud dataproc jobs submit pig --cluster=CLUSTER (--execute=QUERY, -e QUERY | --file=FILE, -f FILE) [optional flags]
optional flags may be --async | --bucket | --continue-on-failure |
--driver-log-levels | --execute | --file | --help |
--jars | --labels | --max-failures-per-hour |
--params | --properties | --region
有关此命令及其标志的详细信息,
run:gcloud dataproc jobs submit pig --help
正如 Cloud SDK Reference 所建议的那样,您需要将任何以逗号分隔的键值对封装在 [ ]
中。因此,像这样重写 gcloud
命令应该可行:
gcloud dataproc jobs submit pig--cluster msm-test-cluster -e "set;" --properties foo=bar --params=[bar=baz,bar1=(f1:chararray,f2:chararray,f3:chararray)]
应该使用 gcloud 转义技术解决该问题。参考 link : GCloud Escaping
所以命令可以更新和执行如下:
gcloud dataproc 作业提交 pig--cluster msm-test-cluster -e "set;" --properties foo=bar --params ^~^bar1="(f1:chararray, f2:chararray,f3:chararray)"~bar=baz
如何为一个键传递以逗号分隔的多个值。
命令 1:
gcloud dataproc jobs submit pig--cluster msm-test-cluster -e "set;" --properties foo=bar --params bar=baz,bar1=(f1:chararray)
命令 2:
gcloud dataproc jobs submit pig--cluster msm-test-cluster -e "set;" --properties foo=bar --params bar=baz,bar1=(f1:chararray,f2:chararray,f3:chararray)
在上面的 command1 运行 中很好,但是 command2 bar1 有多个用逗号分隔的值,它失败了,因为 chararray 和 f2 之间有逗号。如何逃避这个逗号。请参阅以下错误消息。如果有人知道解决方案请告诉我。
**ERROR:** (gcloud.dataproc.jobs.submit.pig) argument --params: Bad syntax for dict arg: [id:chararray)]. Please see `gcloud topic flags-file` or `gcloud topic escaping` for information on providing list or dictionary flag values with special characters.
Usage: gcloud dataproc jobs submit pig --cluster=CLUSTER (--execute=QUERY, -e QUERY | --file=FILE, -f FILE) [optional flags]
optional flags may be --async | --bucket | --continue-on-failure |
--driver-log-levels | --execute | --file | --help |
--jars | --labels | --max-failures-per-hour |
--params | --properties | --region
有关此命令及其标志的详细信息,
run:gcloud dataproc jobs submit pig --help
正如 Cloud SDK Reference 所建议的那样,您需要将任何以逗号分隔的键值对封装在 [ ]
中。因此,像这样重写 gcloud
命令应该可行:
gcloud dataproc jobs submit pig--cluster msm-test-cluster -e "set;" --properties foo=bar --params=[bar=baz,bar1=(f1:chararray,f2:chararray,f3:chararray)]
应该使用 gcloud 转义技术解决该问题。参考 link : GCloud Escaping
所以命令可以更新和执行如下:
gcloud dataproc 作业提交 pig--cluster msm-test-cluster -e "set;" --properties foo=bar --params ^~^bar1="(f1:chararray, f2:chararray,f3:chararray)"~bar=baz