check1<-rimpala.query("select * from sum2")
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
java.sql.SQLException: Method not supported
dim(sum2)是49501行和18列。
check1<-rimpala.query("select *from sum3")
dim(sum3)是102行和6列。
它适用于较小的样本量。
抱歉,我无法重现这个例子。是否有人遇到数据量较大的同样问题?有什么想法解决这个问题?感谢。答案 0 :(得分:1)
如上所述elsewhere on StackOverflow,RImpala未实现executeUpdate
,因此无法运行任何修改状态的查询。我怀疑你不是通过运行更大的SELECT查询而是因为你试图插入,更新或删除一些数据而发现错误。
如果您想使用R中的Impala,我建议您使用dplyrimpaladb。
答案 1 :(得分:0)
更新了RImpala(v0.1.6)版本,支持使用executeUpdate执行DDL查询。
最新版本包含以下修复/补充:
您可以使用查询功能运行DDL查询,如下所示:
rimpala.query(Q="drop table sample_table",isDDL="true")
您还可以在查询函数中指定fetchSize,以帮助有效地读取大数据。
rimpala.query(Q="select * from sample_table",fetchSize="10000")
请在Cran中找到最新版本:http://cran.r-project.org/web/packages/RImpala/index.html
答案 2 :(得分:0)
我对RImpala软件包有同样的问题,建议使用RJDBC软件包:
library(RJDBC)
drv <- JDBC(driverClass = "org.apache.hive.jdbc.HiveDriver",
classPath = list.files("path_to_jars",pattern="jar$",full.names=T),
identifier.quote="`")
conn <- dbConnect(drv, "jdbc:hive2://localhost:21050/;auth=noSasl")
check1 <- dbGetQuery(conn, "select *from sum3")
我使用这些jar文件,即使按预期工作也是如此: https://downloads.cloudera.com/impala-jdbc/impala-jdbc-0.5-2.zip
有关更多信息和速度比较,请查看此博客文章: http://datascience.la/r-and-impala-its-better-to-kiss-than-using-java/