Syntactical error when reading data from BigQuery using R Error: Encountered " "FROM" "FROM "" at line 1, column 10. Was expecting: <EOF>
Syntactical error when reading data from BigQuery using R Error: Encountered " "FROM" "FROM "" at line 1, column 10. Was expecting: <EOF>
我已经检查了答案,但是有 none 特别适用于“FROM”“FROM”。我正在尝试使用 RStudio 从 BigQuery 中提取数据,它是 运行 a Virtual Machine via Google Compute Engine,安装包readr和bigrquery,session已经过认证,代码如下
project <- "testconnectrtobigquery"
sql <- "SELECT * FROM 'testconnectrtobigquery.TestDataSetRtoBQ.TestTable' LIMIT 5"
query_exec(sql, project = project)
这里是错误
> source('~/.active-rstudio-document')
Error: Encountered " "FROM" "FROM "" at line 1, column 10.
Was expecting:
<EOF>
[invalidQuery]
有人可以解释一下如何解决这个问题吗?
通常,关系数据库 运行 SQL 对文字、字符串值使用单引号,而不对 table 和列名等标识符使用单引号。具体来说,根据 Google BigQuery 文档,GBQ 遵循两个约定来转义特殊字符、空格和关键字:
- 对于 Standard SQL,引用的标识符必须用反引号括起来。
- 对于 Legacy SQL,名称应括在方括号中。
因此,根据您的 SQL 模式,考虑用反引号或括号替换单引号:
-- BigQuery Legacy SQL
SELECT * FROM `testconnectrtobigquery.TestDataSetRtoBQ.TestTable` LIMIT 5
-- BigQuery Standard SQL
SELECT * FROM [testconnectrtobigquery.TestDataSetRtoBQ.TestTable] LIMIT 5
但是,你没有任何特殊字符或空格,所以不需要转义。
SELECT * FROM testconnectrtobigquery.TestDataSetRtoBQ.TestTable LIMIT 5
我已经检查了答案,但是有 none 特别适用于“FROM”“FROM”。我正在尝试使用 RStudio 从 BigQuery 中提取数据,它是 运行 a Virtual Machine via Google Compute Engine,安装包readr和bigrquery,session已经过认证,代码如下
project <- "testconnectrtobigquery"
sql <- "SELECT * FROM 'testconnectrtobigquery.TestDataSetRtoBQ.TestTable' LIMIT 5"
query_exec(sql, project = project)
这里是错误
> source('~/.active-rstudio-document')
Error: Encountered " "FROM" "FROM "" at line 1, column 10.
Was expecting:
<EOF>
[invalidQuery]
有人可以解释一下如何解决这个问题吗?
通常,关系数据库 运行 SQL 对文字、字符串值使用单引号,而不对 table 和列名等标识符使用单引号。具体来说,根据 Google BigQuery 文档,GBQ 遵循两个约定来转义特殊字符、空格和关键字:
- 对于 Standard SQL,引用的标识符必须用反引号括起来。
- 对于 Legacy SQL,名称应括在方括号中。
因此,根据您的 SQL 模式,考虑用反引号或括号替换单引号:
-- BigQuery Legacy SQL
SELECT * FROM `testconnectrtobigquery.TestDataSetRtoBQ.TestTable` LIMIT 5
-- BigQuery Standard SQL
SELECT * FROM [testconnectrtobigquery.TestDataSetRtoBQ.TestTable] LIMIT 5
但是,你没有任何特殊字符或空格,所以不需要转义。
SELECT * FROM testconnectrtobigquery.TestDataSetRtoBQ.TestTable LIMIT 5