将 SQL BigQuery 表导入 R 时出现问题。 - strsplit(name, “.”, fixed = TRUE) 中的错误:非字符参数

Problem with importing SQL BigQuery table into R. - Error in strsplit(name, ".", fixed = TRUE) : non-character argument

提问人:Goik Dominika 提问时间:11/1/2023 更新时间:11/11/2023 访问量:84

问:

我想将 SQL 表从 BigQuery(为此项目启用计费)导入到我的 R Markdown 代码块中。 R 版本 4.3.0 (2023-04-21 ucrt) DBI版本:1.1.3 Bigrquery 版本:1.4.2 DPLYR 版本:2.4.0

install.packages(c("DBI", "dbplyr", "bigrquery"))  
library(bigrquery)
library(DBI)
library(dbplyr)

con <- dbConnect(
    bigrquery::bigquery(),
    project = "sunny-effort-399008",
    dataset = "Daily_tables",
    billing = "My_First_Project"
)
                    
dbListTables(con)
dbIsValid(con)

#METs table
met<- as.character("Mets")
METs<-tbl(con, "Mets")

昨天和今天早上(直到 13 点)运行此代码后,我能够获得所需的表。但是,现在当我尝试回忆它时,我得到:

strsplit(name, “.”, fixed = TRUE) 中的错误:非字符参数 14. strsplit(name, “.”, fixed = TRUE) 13. as_bq_table。BigQueryConnection(con, sql) 12. as_bq_table(con, sql) 11. db_query_fields。BigQueryConnection(con, ...) 10. dplyr::d b_query_fields(con, ...) 9. eval_bare(expr((!!fun)(con,...))) 8. dbplyr_fallback(con, “db_query_fields”, ...) 7. dbplyr_query_fields(src$con, 来自) 6. 变量 %||% dbplyr_query_fields(src$con, 从) 5. tbl_sql(c(subclass, “dbi”), src = src, from = from, ...) 4. tbl.src_dbi(dbplyr::src_dbi(src, auto_disconnect = FALSE), from = from, ...) 3. tbl(dbplyr::src_dbi(src, auto_disconnect = FALSE), from = from, ...) 2. 结核病。DBIConnection(con, “Mets”) 1. tbl(con, “大都会”)

(我把整个回溯) 今天早上从 BigQuery 导入“Mets”表后,到目前为止,我能够生成包含其内容的绘图。我不知道该怎么办。 我尝试过的事情:

  1. 检查表的名称 - 100% 确定这是它的名称。
  2. 检查与 的连接。 dbIsValid(con)
  3. 将“Mets”更改为角色名称。
  4. 检查了源 BigQuery 项目中是否存在“Mets”表。
  5. 更改了 3 个不同表的表名 - 它们都不起作用,并且每个都产生了相同的输出。

我用完了想法,我也浏览了论坛,找不到类比问题。这是一个有点相似的:https://github.com/r-dbi/bigrquery/issues/492。但是我有最新版本的 dplyr (1.1.3),但它仍然不起作用。

我不知道如何重现这个错误,我是 R 的新手(对不起)。如果有任何信息我可以额外添加以帮助任何人解决这个问题,我很乐意提供它。

R 导入 错误处理 Google-BigQuery BigrQuery

评论


答:

0赞 Erin Asks 11/1/2023 #1

作为导致问题的函数的解决方法,这种替代方法应将表置于 R 中:

METs <- dbGetQuery(
  con, "SELECT * FROM sunny-effort-399008.Daily_tables.[table name here]")

评论

0赞 Goik Dominika 11/2/2023
不幸的是,这没有奏效。Obatined 输出:signal_reason中的错误(json$error$errors[[1L]]$reason, json$error$message)。
0赞 Erin Asks 11/2/2023
尝试重新运行但替换为实际表,我意识到您的计费项目与表不是一回事。示例:METs <- dbGetQuery( con, “SELECT * FROM sunny-effort-399008.Daily_tables.table_name“)
0赞 Goik Dominika 11/2/2023
我已经将注释调整为正确的表名,而不是计费项目,但仍然没有任何:(。我遇到了同样的错误。
0赞 JerryWho 11/11/2023 #2

我也有同样的问题。我使用了dbplyr 2.4.0。我的快速解决方案是回到 dbplyr 版本 2.3.4