错误:“ java.lang.RuntimeException:无法获取location1的值”

时间:2018-12-13 06:18:04

标签: templates gcloud dataflow

以下是当我尝试运行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时,抛出了一个错误。因此,我改用inputLocationsoutputLocations来解决错误。
https://cloud.google.com/dataflow/docs/guides/templates/executing-templates#example-1-custom-template-batch-job_1

1 个答案:

答案 0 :(得分:0)

--parameters标志是字典类型的,您不能在逗号分隔的参数之间留空格。 inputLocations/outputLocations参数也接受对象。您必须将对象用大括号{}括起来,用""括起来,然后转义逗号。要在CLI上运行它是非常棘手的。您可以在此documentation中找到参考,但是此stackoverflow answer中提供了有关如何使其工作的完整说明。