无法将 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 变量名。
我正在使用 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 变量名。