I get this error only when reading, then writing (to a different table). If I only read from the table, no error occurs. For example, the code below produces no error.
Pipeline p = Pipeline.create(
PipelineOptionsFactory.fromArgs(args).withValidation().create());
PCollection<TableRow> BigQueryTableRow = p
.apply(BigQueryIO.Read.named("ReadTable")
.from("project:dataset.data_table"));
p.run();
But if I do the following, I get a 'BigQuery job Backend error'.
Pipeline p = Pipeline.create(
PipelineOptionsFactory.fromArgs(args).withValidation().create());
PCollection<TableRow> BigQueryTableRow = p
.apply(BigQueryIO.Read.named("ReadTable")
.from("project:dataset.data_table"));
TableSchema tableSchema = new TableSchema().setFields(fields);
BigQueryTableRow.apply(BigQueryIO.Write
.named("Write Members to BigQuery")
.to("project:dataset.data_table_two")
.withSchema(tableSchema)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));
p.run();
Some more details on the error
BigQuery job "dataflow_job" in project "project-name"
finished with error(s): errorResult: Backend error.
Job aborted.