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