来自空运行标志的模式必须将字段视为可空

时间:2016-05-06 19:33:20

标签: google-bigquery

我使用Java API通过干运行从查询中获取模式,但是我得到的模式在实际需要它们时包含可空字段。

例如,使用此查询:

SELECT word FROM `bigquery-public-data.samples.shakespeare`

即使"字"表中需要字段,我得到的结果是

com.google.api.services.bigquery.model.TableSchema = 
{"fields":[{"mode":"NULLABLE","name":"word","type":"STRING"}]}

这应该发生吗?

1 个答案:

答案 0 :(得分:1)

是的,这可能发生 - 查询结果可能与表模式有不同的NULLABLE与REQUIRED,即使查询只是简单地选择字段。一般来说,列可空性的传播是脆弱的,因此最好不要依赖它。

P.S。看起来您使用的是标准SQL https://cloud.google.com/bigquery/sql-reference/(尽管遗留SQL也可能发生类似情况)。