如何使用doobie连接到hive

dgenwo3n  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(387)

hive有一个jdbc驱动程序,但似乎没有完全运行。我使用默认的doobie事务处理程序来连接它,就像

val xa = Transactor.fromDriverManager[IO](
  "org.apache.hive.jdbc.HiveDriver", url, username, pass
)

myQuery.transact(xa).unsafeRunSync

我收到一条错误信息
[错误]线程“main”java.sql.sqlfeaturenotsupportedexception中出现异常:org.apache.hive.jdbc.hiveconnection.rollback(hiveconnection)中不支持方法[错误]。java:1327)[错误]在doobie.free.kleislinterpreter$connectioninterpreter$$anonfun$rollback$1.apply(kleislinterpreter。scala:643)[错误]在doobie.free.kleislieinterpreter$connectioninterpreter$$anonfun$回滚$1.apply(kleislieinterpreter。scala:643)[错误]在doobie.free.kleislieinterpreter$$anonfun$primitive$1$$anonfun$apply$1.apply(kleislieinterpreter。scala:99)
如何使用doobie连接到hive?

cdmah0mi

cdmah0mi1#

您需要通过一个新策略禁用事务处理程序中的“after”和“oops”。这里是如何

import doobie.free.connection.unit
    import doobie.util.transactor.Strategy

    val hiveStrategy = Strategy.default.copy(
                        after = unit, oops = unit)

    val xa = Transactor.strategy.set(
               Transactor.fromDriverManager[IO](
                 "org.apache.hive.jdbc.HiveDriver", url, username, pass), 
               hiveStrategy)

    myQuery.transact(xa).unsafeRunSync

相关问题