【发布时间】:2015-07-21 23:31:39
【问题描述】:
我一直在尝试编写一个 R 脚本来查询 Impala 数据库。这是对数据库的查询:
select columnA, max(columnB) from databaseA.tableA where columnC in (select distinct(columnC) from databaseB.tableB ) group by columnA order by columnA
当我手动运行此查询时(阅读:通过 impala-shell 在 Rscript 之外),我能够获取表内容。但是,当通过 R 脚本尝试相同时,我收到以下错误:
[1] "HY000 140 [Cloudera][ImpalaODBC] (140) Unsupported query."
[2] "[RODBC] ERROR: Could not SQLExecDirect 'select columnA, max(columnB) from databaseA.tableA where columnC in (select distinct(columnC) from databaseB.tableB ) group by columnA order by columnA'
closing unused RODBC handle 1
为什么通过 R 尝试查询失败?我该如何解决这个问题?在此先感谢:)
编辑 1:
连接脚本如下:
library("RODBC");
connection <- odbcConnect("Impala");
query <- "select columnA, max(columnB) from databaseA.tableA where columnC in (select distinct(columnC) from databaseB.tableB ) group by columnA order by columnA";
data <- sqlQuery(connection,query);
【问题讨论】:
-
你的连接脚本看起来如何
-
我已经用连接脚本更新了我的问题。
-
我遇到了完全相同的问题。我的 ODBC 连接适用于简单查询,因此不是 ODBC 问题。 @GowthamGanesh 你找到任何解决方案了吗?
-
很遗憾没有。我认为它不支持像“group by”这样的复杂查询
-
我也有同样的问题来自 R 在 SQL 中运行存储过程。但是,我观察到它确实完成了存储过程,但它也会引发错误。我认为它与时间有关,如果它超过了某个时间,它就会抛出这个错误..