以下是当我尝试运行dataflow
作业时生成的错误消息。更具体地说,我使用通过执行dataprep
中的流而创建的模板来执行数据流作业。
我在gcloud shell中运行的命令是:
gcloud dataflow jobs run_template
--gcs-location gs://[bucket]/templates/sample_template
--parameters
inputLocations=gs://[bucket]/input/input_file.csv,
outputLocations=gs://[bucket]/output/my _output
“ java.lang.RuntimeException:无法获取location1的值”
”由以下原因引起:com.fasterxml.jackson.core.JsonParseException: 无法识别的令牌“ gs”:原本预期为(“ true”,“ false”或“ null”) [来源:(字符串)“ gs:// [bucket] /input_file.csv”]
所以,我想知道运行作业的正确命令吗?
注意:
如以下文档中所述,当我在inputFile
中使用outputFile
和--parameters
时,抛出了一个错误。因此,我改用inputLocations
和outputLocations
来解决错误。
https://cloud.google.com/dataflow/docs/guides/templates/executing-templates#example-1-custom-template-batch-job_1
答案 0 :(得分:0)
--parameters
标志是字典类型的,您不能在逗号分隔的参数之间留空格。 inputLocations/outputLocations
参数也接受对象。您必须将对象用大括号{}
括起来,用""
括起来,然后转义逗号。要在CLI上运行它是非常棘手的。您可以在此documentation中找到参考,但是此stackoverflow answer中提供了有关如何使其工作的完整说明。