json的bigquery loadJob-在模式自动检测中强制字段为String

时间:2018-11-15 10:33:00

标签: google-bigquery

如果json开头包含

  

“标签”:“ foo”

后来是

  

“标签”:“ 123”

bigquery返回

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

尽管它是“ 123”而不是123。

文件正在加载

  

自动检测:正确

是否有一种方法可以强制 bigquery 在应用自动检测时将任何字段设置为字符串,或者唯一的方法是使用csv?

1 个答案:

答案 0 :(得分:0)

auto-detection基于尽最大努力来识别数据类型,方法是扫描多达100行的数据以用作代表样本。无法提供有关它是哪种类型的见解。您可以考虑为用例手动指定架构。

UDATE:

我已经测试过仅加载{"label" : "123"}的文件,并且该文件被识别为INTEGER。因此,无论是否有引号,自动检测都将"123"识别为INGETER。对于您的情况,您可以考虑按照文档中的说明从现有表中export the schema

  

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

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