无法将 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 查询
无法在 Google BigQuery 中将此旧版 SQL 转换为标准 SQL