BigQuery - 将“”设置为 Null

Posted

技术标签:

【中文标题】BigQuery - 将“”设置为 Null【英文标题】:BigQuery - set "" as Null 【发布时间】:2016-03-01 07:50:55 【问题描述】:

我得到 csv 文件,其中字符串空值表示为"", 当我将文件加载到BigQuery 时,该字段的值为空字符串 而不是Null

有没有办法将 BigQuery 设置为将 "" 视为 Null 值?

【问题讨论】:

【参考方案1】:

为那些可能仍然需要它的人添加它。有一个NULLIF 函数可以轻松做到这一点。

NULLIF(column_name,'')

如果column_name 是一个空字符串,即'',它会输入NULL,如果不是,则输入column_name 值。

【讨论】:

我希望几年前我就知道这个 nullif() !谢谢。【参考方案2】:

在我看来,从原始文件中删除所有 "" 实例可能是最简单的。 (通过查找和替换。)

否则,将表加载到 BigQuery 后,您可以选择所有列,将case when column_name = '' then null else column_name end 应用于相关列,并将结果另存为新表。

【讨论】:

【参考方案3】:

您使用的是 Google Cloud SDK (https://cloud.google.com/sdk/downloads) 附带的命令行工具吗?如果是这样,请查看bq help load 以查看load 命令的参数。您可以传递的标志之一是--null_marker

我尚未验证此标志是否支持空字符串,但如果 Google Cloud 支持它,它就会存在。

【讨论】:

我无法让--null_marker 识别空字符串。我尝试通过""'""'

以上是关于BigQuery - 将“”设置为 Null的主要内容,如果未能解决你的问题,请参考以下文章

通过 Google BigQuery API 将查询结果导出为 JSON

google-bigquery 在查询结果中将日期格式设置为 mm/dd/yyyy

谷歌分析导出设置到 Bigquery

BigQuery 中的查询作业中的 allowLargeResults

谷歌分析到 Bigquery 同一个项目的两个视图

BigQuery 会将记录移动到正确的分区中吗?