从BigQuery的导入文档中,
注意:不允许空值
所以我假设null
在 json 格式的数据中不允许 BigQuery 导入。但是,null
值实际上在常规 ETL 任务中很常见(由于缺少数据)。导入此类 json 源文件应该是什么好的解决方案?请注意,我的数据包含嵌套结构,因此我不喜欢转换为CSV
和使用,,
来表示一个null
值。
我认为我可以做的一种方法是null
分别用不同数据类型的默认值替换所有值,例如,
- 字符串:
null
-> 空字符串 - 整数:
null
-> -1 - 浮动:
null
-> -1.0 - ...
但我不喜欢它。我正在寻找更好的选择。
顺便说一句,我尝试bq load
使用包含null
值的 json 文件。我收到以下错误:
Failure details:
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n
...
我认为这是null
使用的指示,对吗?
编辑:如果我删除所有null
字段,它似乎工作。我想这是处理null
数据的方式。你不能拥有null
一个数据字段,但你不能包括它。所以我需要一个过滤代码来删除null
我的原始 json 中的所有字段。