如何使用Doobie连接到Hive

Kai*_*ang 4 hive scala jdbc doobie

有一个用于配置单元的jdbc驱动程序,但似乎无法正常运行。我使用默认的doobie Transactor来连接它

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

myQuery.transact(xa).unsafeRunSync
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息

[错误]线程“主”中的异常java.sql.SQLFeatureNotSupportedException:不支持方法。 doobie.free.Connection.com。$$ anonfun $ .rollback $ 1.apply(kleisliinterpreter.scala:643)[错误]。 KleisliInterpreter $$ anonfun $ primitive $ 1 $ anonfun $ apply $ 1.apply(kleisliinterpreter.scala:99)

如何使用Doobie连接到Hive?

Kai*_*ang 5

您需要通过新策略禁用Transactor中的“之后”和“ 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
Run Code Online (Sandbox Code Playgroud)