我已经使用apache beam编写了一个python脚本,现在我正在尝试使用Google Dataflow执行它。但是,当我尝试创建作业时,出现以下错误:
[
{
"@type": "type.googleapis.com/google.rpc.PreconditionFailure",
"violations": [
{
"type": "JSON",
"subject": "0:0",
"description": "Unexpected end of stream : expected '{'"
}
]
}
]
我知道我必须以某种方式将我的 python 代码转换为 JSON,但我还没有找到关于如何完成的非常清晰的文档。我尝试按照此处文档中的说明运行该命令:
python -m examples.mymodule
--runner DataflowRunner
--project PROJECT_ID
--staging_location gs://BUCKET_NAME/staging
--temp_location gs://BUCKET_NAME/temp
--template_location gs://BUCKET_NAME/templates/TEMPLATE_NAME
--region REGION
在本地和谷歌云外壳中,但我收到此错误:error: argument --runner: expected one argument
,尽管跑pip install apache-beam[gcp]
.
我已经看到这个问题 数据流无法使用自定义模板解析模板文件,但我无法使用提供的答案让它工作。
感谢您的阅读,提前感谢!
这更像是一个评论,尽管我还不能发表评论。
我使用相同的命令来暂存模板,所以我认为这不是问题所在。我的猜测是你的管道代码。 您是否按照链接的堆栈溢出帖子中所述使用pipeline.run()
?如果是这样,请尝试以下操作:
with beam.Pipeline(options=options) as p:
(
p
| 'Hello World' >> beam.Create(['Hello World'])
| 'Print Hello World' >> beam.Map(print)
)