我使用Java API通过干运行从查询中获取模式,但是我得到的模式在实际需要它们时包含可空字段。
例如,使用此查询:
SELECT word FROM `bigquery-public-data.samples.shakespeare`
即使"字"表中需要字段,我得到的结果是
com.google.api.services.bigquery.model.TableSchema =
{"fields":[{"mode":"NULLABLE","name":"word","type":"STRING"}]}
这应该发生吗?
答案 0 :(得分:1)
是的,这可能发生 - 查询结果可能与表模式有不同的NULLABLE与REQUIRED,即使查询只是简单地选择字段。一般来说,列可空性的传播是脆弱的,因此最好不要依赖它。
P.S。看起来您使用的是标准SQL https://cloud.google.com/bigquery/sql-reference/(尽管遗留SQL也可能发生类似情况)。