При использовании BigQueryIO
вы можете сделать это:
.apply("BQ-write", BigQueryIO.writeTableRows()
.to(tableSpec)
.withJsonSchema(schema)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND));
Это волшебство: BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED
При использовании вы должны указать схему JSON таблицы, например:
{
"fields": [
{
"mode": "NULLABLE",
"name": "f1",
"type": "STRING"
},
{
"mode": "NULLABLE",
"name": "error",
"type": "f2"
},
{
"mode": "NULLABLE",
"name": "f3",
"type": "STRING"
}
]
}
и TableSpec
TableReference tableSpec =
new TableReference()
.setProjectId(projectId)
.setDatasetId(dataset)
.setTableId(errorTable);