【发布时间】:2017-10-13 00:07:27
【问题描述】:
我刚开始使用驱动org.apache.hive.jdbc.HiveDriver(版本
1.2.1 for spark2) 与 Spark Thrift Server (STS)(参考 here)
java.sql.ResultSet 定义了方法absolute() (JavaDoc here)
但是HiveBaseResultSet似乎选择不实现该方法(源码here)
所以现在我的应用程序(基于 SmartGWT 构建)正在执行一个简单的操作,我收到以下错误消息:
=== 2017-05-13 18:06:16,980 [3-47] WARN RequestContext - dsRequest.execute() failed:
java.sql.SQLException: Method not supported
at org.apache.hive.jdbc.HiveBaseResultSet.absolute(HiveBaseResultSet.java:70)
at org.apache.commons.dbcp.DelegatingResultSet.absolute(DelegatingResultSet.java:373)
at com.isomorphic.sql.SQLDataSource.executeWindowedSelect(SQLDataSource.java:2970)
at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:2024)
驱动选择不实现absolute()的原因是什么?
是否有解决此限制的方法?
【问题讨论】:
-
您的问题是什么?我希望您知道
absolute(int)方法是 1) 可选的,2) 预计会为仅向前的结果集(默认)抛出SQLException。 -
@Mark -- 好的。谢谢!现在我明白了。
-
现在我更改了我的应用程序以避免调用
absolute()并且我通过了该错误。现在我看到另一个错误:java.sql.SQLException: Method not supported at org.apache.hive.jdbc.HiveConnection.commit(HiveConnection.java:742) at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334) at com.isomorphic.sql.SQLTransaction.commitTransaction(SQLTransaction.java:307)。所以现在问题转移到commit()我该如何解决这个问题?谢谢!
标签: hadoop apache-spark jdbc hive thrift