我在 Dataprep 中设计了一个数据转换,现在正尝试使用 Dataflow 中的模板来运行它。我的流程有几个输入和输出 - 数据流模板将它们作为 json 对象提供,每个输入和位置都有键/值对。它们看起来像这样(为便于阅读添加了换行符):
{
"location1": "project:bq_dataset.bq_table1",
#...
"location10": "project:bq_dataset.bq_table10",
"location17": "project:bq_dataset.bq_table17"
}
我有 17 个输入(主要是查找)和 2 个输出(一个 csv,一个 bigquery)。我将这些传递给gcloud
CLI,如下所示:
gcloud dataflow jobs run job-201807301630 /
--gcs-location=gs://bucketname/dataprep/dataprep_template /
--parameters inputLocations={"location1":"project..."},outputLocations={"location1":"gs://bucketname/output.csv"}
但我收到一个错误:
ERROR: (gcloud.dataflow.jobs.run) unrecognized arguments:
inputLocations=location1:project:bq_dataset.bq_table1,outputLocations=location2:project:bq_dataset.bq_output1
inputLocations=location10:project:bq_dataset.bq_table10,outputLocations=location1:gs://bucketname/output.csv
从错误消息来看,它看起来正在合并输入和输出,因此由于我有两个输出,因此每两个输入都与两个输出配对:
input1:output1
input2:output2
input3:output1
input4:output2
input5:output1
input6:output2
...
我试过引用输入/输出对象(单和双,加上删除对象中的引号)[]
,用波浪线将它们包裹起来,但没有任何乐趣。有没有人设法执行具有多个输入的数据流作业?