以前,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在表格中插入行。任何鏈接或代碼示例都會有很大的幫助。