无法与标准SQL一起使用bigrquery

goo*_*ose 2 r google-bigquery ipython-notebook

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

对于上面的标准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)
Run Code Online (Sandbox Code Playgroud)

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

怎么了

Wil*_*uks 6

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

应该use_legacy_sql = FALSE改为useLegacySql。他们在提交新代码后立即更改了变量名称。