我必须运行SQL Beam查询,最后将结果写入BigQuery。
我有一个查询结果列表,我想将它们展平为一个集合并将它们全部写入BigQuery。
但是,不幸的是,这行不通,并且Flatten不会输出任何数据,即使可以肯定。
List<PCollection<Row>> pCollectionRowsList = queries.entrySet().stream().map((entry) ->
events.apply("event: " + entry.getKey(), SqlTransform.query(entry.getValue())))
.setCoder(RowCoder.of(rowOutputSchema)).setRowSchema(rowOutputSchema))
.collect(Collectors.toList());
PCollectionList.of(pCollectionRowsList).apply(Flatten.pCollections())
.apply("bq-write",
SqlResultToBigQueryRow.of(
options.getTargetBigQueryProject().get(),
options.getTargetBigQueryDataset().get(),
options.getTargetBigQueryTable().get()
)
);