以下代码适用于Dataflow 1.9 sdk,迁移到2.X
PCollection<TableRow> tableRow = ...
tableRow.apply(BigQueryIO.Write()
.to(String.format("%1$s:%2$s.%3$s",projectId, bqDataSet, bqTable))
.withSchema(schema)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND));
我得到了
The method apply(PTransform<? super PCollection<TableRow>,OutputT>) in the type PCollection<TableRow> is not applicable for the arguments (BigQueryIO.Write<Object>)
Release notes在这里没有多大帮助,2.X上的文档是不存在的重定向到梁API页面。
答案 0 :(得分:1)
您是否尝试过使用BigqueryIO.writeTableRows()?
Apache Beam 2.1.0 BigqueryIO文档 https://beam.apache.org/documentation/sdks/javadoc/2.1.0/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html
答案 1 :(得分:0)
您可以尝试明确提供TableRow
类型(BigQuery.<TableRow>write()...
)或使用上面建议的BigQuery.writeTableRows()
。
看起来界面在2.x中是通用的。早期的版本有TableRow硬编码。