【发布时间】:2018-10-02 08:26:48
【问题描述】:
我正在尝试在 Apache Beam 中使用运行时参数和 BigtableIO 来写入 BigTable。
我创建了一个管道来读取 BigQuery 并写入 Bigtable。 当我提供静态参数(使用 ConfigBigtableIO 和 ConfigBigtableConfiguration,参考此处的示例 - https://github.com/GoogleCloudPlatform/cloud-bigtable-examples/blob/master/java/dataflow-connector-examples/src/main/java/com/google/cloud/bigtable/dataflow/example/HelloWorldWrite.java)时,管道工作正常,但在尝试使用运行时参数设置管道时出现编译错误。 选项设置为所有参数都是运行时值提供者。
p.apply(BigQueryIO.readTableRows().fromQuery(options.getBqQuery())
.usingStandardSql())
.apply(ParDo.of(new TransFormFn(options.getColumnFamily(), options.getRowKey(), options.getColumnKey(), options.getRowKeySuffix())))
.apply(BigtableIO.write().withProjectId(options.getBigtableProjectId()).
withInstanceId(options.getBigtableInstanceId()).
withTableId(options.getBigtableTableId()));
期望 Bigtable.write()... 的输出为 org.apache.beam.sdk.transforms.PTransform,OutputT> 而 Bigtable.write() 正在返回一个 Write 对象。 你能帮助提供正确的语法来解决这个问题吗?谢谢。
【问题讨论】:
-
Write 类的定义如下:github.com/apache/beam/blob/release-2.4.0/sdks/java/io/…: public abstract static class Write extends PTransform
>>, PDone>
标签: java google-cloud-dataflow apache-beam google-cloud-bigtable