【问题标题】:RImpala: Query Failed When Larger DataRImpala:较大数据时查询失败
【发布时间】:2015-01-29 11:00:38
【问题描述】:
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 列。

它适用于较小的样本量。

抱歉,我无法重现此示例。有没有人遇到更大数据量的同样问题?有什么办法解决这个问题吗?谢谢。

【问题讨论】:

    标签: r impala


    【解决方案1】:

    elsewhere on StackOverflow 所述,RImpala 没有实现executeUpdate,因此无法运行任何修改状态的查询。我怀疑您遇到错误不是因为运行更大的 SELECT 查询,而是因为您尝试插入、更新或删除一些数据。

    如果您想使用 R 中的 Impala,我建议您使用 dplyrimpaladb

    【讨论】:

      【解决方案2】:

      RImpala (v0.1.6) 版本已更新,支持使用 executeUpdate 执行 DDL 查询。

      最新版本包含以下修复/添加:

      1. 支持 DDL 查询执行。
      2. 查询函数中的 fetchSize 参数,用于说明从 Impala 读取的一次往返中可以检索到的记录数。
      3. 修复了返回 NULL 值时查询失败的问题。
      4. 与 CDH 5.x.x 的兼容性

      您可以使用查询功能运行 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

      源代码:https://github.com/Mu-Sigma/RImpala

      【讨论】:

      • 但是你真的能够插入批处理行吗?这是我认为最初的限制
      【解决方案3】:

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

      【讨论】:

      • 但这与插入行无关。你能插入行吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      相关资源
      最近更新 更多