【问题标题】:Bigrquery cannot coerce integersBigrquery 不能强制整数
【发布时间】: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

【问题讨论】:

    标签: python r google-bigquery


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 是的,R 整数是 32 位的,因此较大的值不能表示为整数,应该在 SQL 中转换为字符串。
    • 是的,当我将 SQL 字段转换为 STRING 时,一切正常!非常感谢你!事实证明我错误地复制了布尔列,其中的值实际上是 NA 反正。
    猜你喜欢
    • 1970-01-01
    • 2012-09-01
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多