Dataflow 上 运行 时路径中缺少对象或存储桶

Missing object or bucket in path when running on Dataflow

尝试 运行 Dataflow 服务上的管道时,我在命令行上指定了暂存和临时存储桶(在 GCS 中)。当程序执行时,我在管道 运行s 之前得到一个 RuntimeException,根本原因是我在路径中遗漏了一些东西。

Caused by: java.lang.RuntimeException: Failed to construct instance from factory method DataflowRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions) ... Caused by: java.lang.IllegalArgumentException: Missing object or bucket in path: 'gs://df-staging-bucket-57763/', did you mean: 'gs://some-bucket/df-staging-bucket-57763'?

gs://df-staging-bucket-57763/ 已经存在于我的项目中,我可以访问它。我需要添加什么才能使这项工作正常进行?

DataflowRunner 要求暂存位置和临时位置是存储桶 的位置,而不是存储桶的顶级位置。将目录(例如 --stagingLocation=gs://df-staging-bucket-57763/staging--tempLocation=gs://df-staging-bucket-57763/temp)添加到您的参数(对于每个 stagingLocationgcpTempLocation 参数)将足以 运行 管道.

更新 运行 配置如下:

  1. 取消选中管道参数选项卡下的标记 "Use Default Dataflow options"。 Select 手动管道参数。
  2. 保留 "Cloud Storage staging location" 的空白值。