【发布时间】:2021-01-26 15:23:56
【问题描述】:
我正在将一个以换行符分隔的 JSON 文件从 GCS 上传到 BigQuery。 JSON 文件中有一些字段包含值的字典,我可以毫无问题地将这些值导入 BigQuery,因为嵌套字段被分解为单独的列。因此,如果以下示例是 JSON 文件中的一行,则一切正常:
{"dict_field": {"value1": 1, "value2": 2}}
但是,如果文件中的一行有一个空字典作为 field_dict 的值,如下所示:
{"dict_field": {}}
我收到以下错误消息:
异常:BigQuery 作业失败。最终错误是:{'reason': 'invalid', 'message': "Unsupported empty struct type for field 'dict_field'"} [...]
我查看了 BigQuery 文档,找不到任何关于将空字典作为值的规定限制。有谁知道这个问题是否有解决方法,或者我是否必须在将数据导入 BigQuery 之前手动清理数据?
【问题讨论】:
-
我认为您的问题可能与此功能请求有关
https://issuetracker.google.com/130890049 -
您能否分享您在提交字典时发送到 BigQuery 的代码和选项?
-
BigQuery 目前不支持加载具有空结构的 JSON 数据。除了从 JSON 数据中删除空结构之外,没有其他解决方法。如果您使用任何编程语言,您可以遍历您的 JSON 数据并将空结构“{}”替换为“null”值。除此之外,剩下的唯一选择是在上面共享的Feature Request 中跟进,以获取有关在 BigQuery 中加载 JSON 数据时实现对空结构的支持的任何可能更新。