使用 R 错误从 BigQuery 读取数据时出现语法错误:在第 1 行第 10 列遇到“FROM”“FROM”。期待:<EOF>
Posted
技术标签:
【中文标题】使用 R 错误从 BigQuery 读取数据时出现语法错误:在第 1 行第 10 列遇到“FROM”“FROM”。期待:<EOF>【英文标题】:Syntactical error when reading data from BigQuery using R Error: Encountered " "FROM" "FROM "" at line 1, column 10. Was expecting: <EOF> 【发布时间】:2020-11-26 08:48:34 【问题描述】:我已经检查了答案,但是没有特别适用于“FROM”“FROM”的答案。我正在尝试使用 RStudio 从 BigQuery 中提取数据,该 RStudio 通过 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]
请有人解释一下如何解决这个问题?
【问题讨论】:
你需要在表名周围加上那些单勾吗?'
【参考方案1】:
通常,运行 SQL 的关系数据库使用单引号表示文字、字符串值,而不是表和列名等标识符。具体来说,根据 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
【讨论】:
以上是关于使用 R 错误从 BigQuery 读取数据时出现语法错误:在第 1 行第 10 列遇到“FROM”“FROM”。期待:<EOF>的主要内容,如果未能解决你的问题,请参考以下文章
从 Cloud Storage Json 加载数据时出现 BigQuery 错误
在 R 中使用 foreach 循环读取 MATLAB .mat 文件时出现问题
写入 BigQuery 时出现 MojoExecutionException
使用 Hibernate 将 Java 应用程序从 DB2 迁移到 BigQuery 时出现错误“找到:int64,预期:整数”