Bigrquery 不能强制整数

Posted

技术标签:

【中文标题】Bigrquery 不能强制整数【英文标题】:Bigrquery cannot coerce integers 【发布时间】:2016-06-03 15:09:49 【问题描述】:

我最近开始在 R 中使用“bigrquery”包从 Google Bigquery 获取一些数据,但是我收到的数据框中的大多数整数列都有 NA。

Google 自己的 BigQuery 仪表板中的相同 SQL 查询返回有效结果。我也在 python 中尝试过,同样的查询在那里也返回了有效的结果,所以它确实是 R 特定的(这不是授权问题)。

当我在 R 中调用 query_exec(query,project=projectID) 时收到的信息:

我在 Google BigQuery 中收到的内容或在 Python 中调用 pd.io.gbq.read_gbq(query,projectID)

可能是什么原因?

我收到的这些 NA 的错误消息是:

通过强制引入整数范围的 NAs

【问题讨论】:

【参考方案1】:

我不熟悉 R 或“bigrquery”,但听起来您的整数值被强制转换为 32 位整数并且超出范围(BigQuery 整数是 64 位)。

解决方法:如果您只想将数字视为不透明的 ID,是否可以将其转换为查询中的字符串?

我不清楚为什么你的布尔列会发生同样的事情,但也许你应该检查类型是否等价(可能是整数与布尔值),因为它们似乎适用于以下列。

可能相关: https://github.com/rstats-db/bigrquery/issues/35

【讨论】:

是的,R 整数是 32 位的,因此较大的值不能表示为整数,应该在 SQL 中转换为字符串。 是的,当我将 SQL 字段转换为 STRING 时,一切正常!非常感谢你!事实证明我错误地复制了布尔列,其中的值实际上是 NA 反正。

以上是关于Bigrquery 不能强制整数的主要内容,如果未能解决你的问题,请参考以下文章

尝试加载 gem 'devise. ActiveSupport:持续时间不能强制转换为整数

无法将整数强制转换为android.support.design.widget.FloatingActionButton

警告:赋值从整数中生成没有强制转换的指针[-Wint-conversion]

ASP强制转换成整数!

强制双写整数

将位列转换为整数