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

Unable to use bigrquery with standard sql

我正在使用 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它returns下面的错误:

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 输入正确的 table 名称,但我似乎输入了,并且查询在 GBQ 控制台中运行正常。

怎么了?

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

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