【发布时间】:2016-03-01 07:50:55
【问题描述】:
我得到 csv 文件,其中字符串空值表示为"",
当我将文件加载到BigQuery 时,该字段的值为空字符串
而不是Null。
有没有办法将 BigQuery 设置为将 "" 视为 Null 值?
【问题讨论】:
标签: google-bigquery
我得到 csv 文件,其中字符串空值表示为"",
当我将文件加载到BigQuery 时,该字段的值为空字符串
而不是Null。
有没有办法将 BigQuery 设置为将 "" 视为 Null 值?
【问题讨论】:
标签: google-bigquery
为那些可能仍然需要它的人添加它。有一个NULLIF 函数可以轻松做到这一点。
NULLIF(column_name,'')
如果column_name 是一个空字符串,即'',它会输入NULL,如果不是,则输入column_name 值。
【讨论】:
在我看来,从原始文件中删除所有 "" 实例可能是最简单的。 (通过查找和替换。)
否则,将表加载到 BigQuery 后,您可以选择所有列,将case when column_name = '' then null else column_name end 应用于相关列,并将结果另存为新表。
【讨论】:
您使用的是 Google Cloud SDK (https://cloud.google.com/sdk/downloads) 附带的命令行工具吗?如果是这样,请查看bq help load 以查看load 命令的参数。您可以传递的标志之一是--null_marker。
我尚未验证此标志是否支持空字符串,但如果 Google Cloud 支持它,它就会存在。
【讨论】:
--null_marker 识别空字符串。我尝试通过"" 和'""'。