private WriteResult writeResult(Pipeline p) { PCollection<TableRow> empty = p.apply("CreateEmptyFailedInserts", Create.empty(TypeDescriptor.of(TableRow.class))); return WriteResult.in(p, new TupleTag<>("failedInserts"), empty); }
@Override public WriteResult expand(PCollection<KV<TableDestination, TableRow>> input) { if (extendedErrorInfo) { TupleTag<BigQueryInsertError> failedInsertsTag = new TupleTag<>(FAILED_INSERTS_TAG_ID); PCollection<BigQueryInsertError> failedInserts = writeAndGetErrors( input, failedInsertsTag, BigQueryInsertErrorCoder.of(), ErrorContainer.BIG_QUERY_INSERT_ERROR_ERROR_CONTAINER); return WriteResult.withExtendedErrors(input.getPipeline(), failedInsertsTag, failedInserts); } else { TupleTag<TableRow> failedInsertsTag = new TupleTag<>(FAILED_INSERTS_TAG_ID); PCollection<TableRow> failedInserts = writeAndGetErrors( input, failedInsertsTag, TableRowJsonCoder.of(), ErrorContainer.TABLE_ROW_ERROR_CONTAINER); return WriteResult.in(input.getPipeline(), failedInsertsTag, failedInserts); } }