Ben Chambers created BEAM-2406:
----------------------------------
Summary: NullPointerException when writing an empty table to
BigQuery
Key: BEAM-2406
URL: https://issues.apache.org/jira/browse/BEAM-2406
Project: Beam
Issue Type: Bug
Components: sdk-java-gcp
Affects Versions: 2.0.0
Reporter: Ben Chambers
Assignee: Reuven Lax
Priority: Minor
Originally reported on Stackoverflow:
https://stackoverflow.com/questions/44314030/handling-empty-pcollections-with-bigquery-in-apache-beam
It looks like if there is no data to write, then WritePartitions will return a
null destination, as explicitly stated in the comments:
https://github.com/apache/beam/blob/v2.0.0/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/WritePartition.java#L126
But, the ConstantTableDestination doesn't turn that into the constant
destination as the comment promises, instead it returns that `null` destination:
https://github.com/apache/beam/blob/53c9bf4cd325035fabde192c63652ef6d591b93c/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers.java#L74
This leads to a null pointer error here since the `tableDestination` is that
null result from calling `getTable`:
https://github.com/apache/beam/blob/v2.0.0/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/WriteTables.java#L97
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)