rimpala:当数据较大时,查询失败

brtdzjyr  于 2021-06-26  发布在  Impala
关注(0)|答案(3)|浏览(425)
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列。
它的样本量较小。
很抱歉,我不能复制这个例子。是否有人在数据量较大时遇到同样的问题?有什么办法解决这个问题吗?谢谢。

tez616oj

tez616oj1#

我对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/

xwbd5t1u

xwbd5t1u2#

rimpala(v0.1.6)版本更新为支持使用executeupdate执行ddl查询。
最新版本包含以下修复程序/增补程序:
支持ddl查询执行。
查询函数中的fetchsize参数,用于说明在从impala读取的一次往返中可以检索的记录数。
修复返回空值时查询失败的问题。
与cdh 5.x.x兼容
您可以使用query函数运行ddl查询,如下所示:

rimpala.query(Q="drop table sample_table",isDDL="true")

您还可以在query函数中指定fetchsize,以帮助高效地读取大数据。

rimpala.query(Q="select * from sample_table",fetchSize="10000")

请查找最新的内部版本:http://cran.r-project.org/web/packages/rimpala/index.html
源代码:https://github.com/mu-sigma/rimpala

5jvtdoz2

5jvtdoz23#

正如stackoverflow的其他部分所述,rimpala没有实现 executeUpdate 因此无法运行任何修改状态的查询。我怀疑您不是通过运行更大的select查询来出错的,而是因为您试图插入、更新或删除一些数据。
如果您想使用r中的impala,我建议您使用dplyimpaladb。

相关问题