无法将 bigquery 与标准 sql 一起使用

Posted

技术标签:

【中文标题】无法将 bigquery 与标准 sql 一起使用【英文标题】:Unable to use bigrquery with standard sql 【发布时间】:2017-07-26 15:42:36 【问题描述】:

我正在使用 R ipython 笔记本(相对 R 新手)并尝试使用“bigrquery”从 Google Big Query 中提取数据。有人告诉我这应该很简单,但是使用标准 sql 进行提取不起作用。

这是我的代码:

require("bigrquery")

# Use your project ID here
project <- "project-id" # put your project ID here

standard_sql <- "SELECT year, month, day, weight_pounds FROM `publicdata.samples.natality` LIMIT 5"

legacy_sql <- "SELECT year, month, day, weight_pounds FROM [publicdata:samples.natality] LIMIT 5"

# doesn't work
standard_data <- query_exec(standard_sql, project = project, useLegacySql = FALSE)

# works
legacy_data <- query_exec(legacy_sql, project = project, useLegacySql = TRUE)

对于上面的标准sql,它返回以下错误:

Error: Invalid table name: `publicdata:samples.natality`
Traceback:

1. query_exec(standard_sql, project = project, useLegacySql = FALSE)
2. run_query_job(query = query, project = project, destination_table = destination_table, 
 .     default_dataset = default_dataset, create_disposition = create_disposition, 
 .     write_disposition = write_disposition, use_legacy_sql = use_legacy_sql, 
 .     quiet = quiet, ...)
3. wait_for(job, quiet = quiet)
4. stop(err$message, call. = FALSE)

这表明我没有为标准 SQL 正确输入表名,但我似乎输入了,并且查询从 GBQ 控制台运行良好。

怎么了?

【问题讨论】:

以防万一 - 在所有小字符中尝试 false 为您安装了什么版本的 bigrquery?您能帮我们打印一下packageVersion("bigrquery") 的结果吗? small chars false 不起作用 - 版本是“0.4.1” - 是不是旧版本? 还尝试了我拥有的全新表。 就像一只便条鹅,当您回复某人的评论时,请记住添加他们的姓名,例如“@Willian Fuks”,以便我们在收件箱中收到通知。我和米哈伊尔都没有收到你最后评论的通知。 【参考方案1】:

您向函数发送了错误的变量。

应该是use_legacy_sql = FALSE 而不是useLegacySql。他们在提交新代码后立即changed 变量名。

【讨论】:

它必须是这样的。非常感谢您的帮助!

以上是关于无法将 bigquery 与标准 sql 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

无法在 python 中对 bigquery 运行标准 SQL 查询

将 SQL 源文件与 bigquery cli 一起使用

无法在 Google BigQuery 中将此旧版 SQL 转换为标准 SQL

无法使用 BigQuery 标准 SQL 提取特定 ID 的自定义维度

无法创建视图 - BigQuery

BigQuery 中用于 Google Analytics 数据的标准 SQL 还是旧版 SQL?