RImpala:大数据时查询失败
RImpala: Query Failed When Larger Data
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 列。
它适用于较小的样本量。
抱歉,我无法重现此示例。有人遇到过更大数据量的相同问题吗?有解决这个问题的想法吗?谢谢
如 elsewhere on Whosebug 所述,RImpala 未实现 executeUpdate
,因此不能 运行 任何修改状态的查询。我怀疑您遇到错误不是因为 运行 宁一个更大的 SELECT 查询,而是因为您试图插入、更新或删除一些数据。
如果您想使用 R 中的 Impala,我建议您使用 dplyrimpaladb。
RImpala (v0.1.6) 版本已更新,支持使用 executeUpdate 执行 DDL 查询。
最新版本包含以下修复/补充:
- 支持 DDL 查询执行。
- 查询函数中的 fetchSize 参数,用于说明从 Impala.
读取的一次往返中可以检索的记录数
- 修复了返回 NULL 值时查询失败的问题。
- 与 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
我和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
有关更多信息和速度比较,请查看此博客 post:
http://datascience.la/r-and-impala-its-better-to-kiss-than-using-java/
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 列。
它适用于较小的样本量。
抱歉,我无法重现此示例。有人遇到过更大数据量的相同问题吗?有解决这个问题的想法吗?谢谢
如 elsewhere on Whosebug 所述,RImpala 未实现 executeUpdate
,因此不能 运行 任何修改状态的查询。我怀疑您遇到错误不是因为 运行 宁一个更大的 SELECT 查询,而是因为您试图插入、更新或删除一些数据。
如果您想使用 R 中的 Impala,我建议您使用 dplyrimpaladb。
RImpala (v0.1.6) 版本已更新,支持使用 executeUpdate 执行 DDL 查询。
最新版本包含以下修复/补充:
- 支持 DDL 查询执行。
- 查询函数中的 fetchSize 参数,用于说明从 Impala. 读取的一次往返中可以检索的记录数
- 修复了返回 NULL 值时查询失败的问题。
- 与 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
我和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
有关更多信息和速度比较,请查看此博客 post: http://datascience.la/r-and-impala-its-better-to-kiss-than-using-java/