以前,PCollection格式化过的结果;我用下面的代码在大查询插入行:从Dataflow插入BigQuery中的数据
// OPTION 1
PCollection<TableRow> formattedResults = ....
formattedResults.apply(BigQueryIO.Write.named("Write").to(tableName)
.withSchema(tableSchema)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND));
而且所有的行直接插在BigQuery中,都好到这里。但现在我已经开始动态识别表名和行,以便我如下创建PCollection:(字符串将表名称,然后它作为值行)
PCollection<KV<String, TableRow>> tableRowMap // OPTION 2
而且,我创建的行组这将在同一个表中去,因为:
PCollection<KV<String, Iterable<TableRow>>> groupedRows //OPTION 3
其中key(字符串)是BQ表名和值在BQ要插入的行的列表。
使用选项1,我可以使用上面显示的代码轻松地在BQ中插入行,但相同的代码不能与OPTION 2或OPTION 3一起使用,因为在这种情况下,我的表名是映射中的键。有没有办法使用OPTION 2或OPTION 3在表格中插入行。任何链接或代码示例都会有很大的帮助。