首页 > 解决方案 > json 的 bigquery loadJob - 在架构自动检测中强制字段为字符串

问题描述

如果在开始时 json 包含

“标签”:“富”

后来是

“标签”:“123”

大查询返回

Invalid schema update. Field label has changed type from STRING to INTEGER 

虽然它是“123”而不是 123。

正在加载文件

自动检测:真

有没有办法强制bigquery在应用其自动检测时将任何字段作为字符串,或者唯一的方法是使用 csv 代替?

标签: google-bigquery

解决方案


自动检测基于通过扫描多达 100 行数据以用作代表性样本来识别数据类型的最大努力。无法深入了解它是哪种类型。您可以考虑为您的用例手动指定模式。

日期:

我已经测试过仅加载一个文件,{"label" : "123"}它被识别为INTEGER. 因此,自动检测识别"123"是否INGETER有引号。对于您的情况,您可以考虑按照文档中的说明从现有表中导出架构:

注意:您可以通过输入以下命令以 JSON 格式查看现有表的架构:bq show --format=prettyjson [DATASET].[TABLE]。

并将其用于进一步的动态负载


推荐阅读