通过R从BigQuery查询数据时,是否有办法将大整数转换为字符串?

Dim*_*rov 7 integer r biginteger google-bigquery bigrquery

通过API通过R从BigQuery查询数据时,是否有比将大数转换为字符串更好的处理大整数的方法?

这是一个MVE,显示整数显示为“ NA”的问题:

> library(bigrquery)
> 
> bq_str <- "
+ SELECT 
+    206932402797274623 AS big_pk
+   ,SAFE_CAST(206932402797274623 AS string) AS string_pk
+ "
> 
> my_df <- bigrquery::query_exec(query = bq_str, 
+                                project = 'XXXXXXXXXXX', 
+                                use_legacy_sql = FALSE,
+                                bigint = "integer64")
0 bytes processed
Warning message:
In converter[[type]](data_m[i, ]) :
  NAs introduced by coercion to integer range
> head(my_df)
  big_pk          string_pk
1     NA 206932402797274623
Run Code Online (Sandbox Code Playgroud)

这是代码:

library(bigrquery)

bq_str <- "
SELECT 
   206932402797274623 AS big_pk
  ,SAFE_CAST(206932402797274623 AS string) AS string_pk
"

my_df <- bigrquery::query_exec(query = bq_str, 
                               project = 'XXXXXX', 
                               use_legacy_sql = FALSE,
                               bigint = "integer64")
head(my_df)
Run Code Online (Sandbox Code Playgroud)

我正在使用1.1.1版bigrquery

小智 5

关于query_exec,已弃用,请尝试使用bq_query

如果只希望避免强制转换为字符串,建议将其强制转换为数字。

否则,您还可以bq_table_download记住将bigint映射到“ integer64”。