Bigquery 自动转换数据中的字段

Posted

技术标签:

【中文标题】Bigquery 自动转换数据中的字段【英文标题】:Bigquery autoconverting fields in data 【发布时间】:2016-09-21 08:38:32 【问题描述】:

背景

在 Bigquery 自动检测中,我将以下 json 数据加载到 BQ 表中。

"a":"","b":"q"

"a":"","b":"q1"

"a":"1","b":"w2"

现在,当这个 json 被上传时,BQ 抛出错误 cannot convert field "a" to integer.

想法

我猜BQ,在读取两行后,BQ 将字段“a”推断为字符串,然后当“a”:“1”出现时,BQ 尝试将其转换为整数(但为什么?)。

因此,为了进行更多调查,我将 json 修改如下。

"a":"f","b":"q"

"a":"v","b":"q1"

"a":"1","b":"w2"

现在,当我使用这个 json 时,没有错误,数据被顺利加载到表中。

我不明白为什么在这种情况下,如果 BQ 将字段 "a" 推断为字符串,为什么它不会引发错误(为什么它不尝试将 "a":"1" 转换为整数)?

查询

我假设的是,BQ 将字段推断为特定类型,仅当它看到字段中的数据(“a”:“1”或“a”:“f”),但我没有得到这就是为什么当 ("a":"1") 是字符串类型时,BQ 会尝试自动将其转换为整数。

这种自动转换可能会产生问题。

请告诉我,如果我的假设是正确的,以及由于实时数据不在我的控制范围内,可以采取哪些措施来避免此类错误,我只能控制我的代码(使用自动检测)。

【问题讨论】:

【参考方案1】:

这是自动检测的错误。我们正在努力修复。

【讨论】:

修复它的预计时间是多少? 修复程序通常需要一些时间才能在所有不同的测试系统和环境中传播,然后才能用于生产 - 所以保守估计需要几周时间。 @MoshaPasumansky,你能不能。更新此错误是否已修复,自动检测功能是否可以与加载表一起使用? 该修复程序现在应该已投入生产。 @MoshaPasumansky,你能看看***.com/questions/53317427/…

以上是关于Bigquery 自动转换数据中的字段的主要内容,如果未能解决你的问题,请参考以下文章

将 MySQL 查询转换为 BigQuery 查询

sql [BigQuery - Facebook产品目录]查询para obtenerelcatálogodeproductos de Kichink。 #facebook #bigqu

BigQuery 自动将字符串转换为 int

使用自动检测的动态 BigQuery 架构:错误架构没有字段

BigQuery 隐藏 UDF 实现

BigQuery:无效日期错误