Как подключиться к Hive с помощью doobie
Существует драйвер jdbc для улья, но он не полностью функционирует. Я использовал по умолчанию Doobie Transactor для подключения к нему, как
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.KleisliInterpreter$ConnectionInterpreter$$anonfun$rollback$1.apply(kleisliinterpreter.scala:643) [ошибка] в doobie.free.KleisliInterpreter $ ConnectionInterpreter $$ anonfun $ откат $ 1.apply (kleisliinterpreter.scala: 643) [ошибка] в doobie.free.KleisliInterpreter$$anonfun$ примитивно $1$$anonfun$ применять $ 1.Apply(kleisliinterpreter.scala:99)
Как мне подключиться к Hive с помощью Doobie?
1 ответ
Вы должны отключить "после" и "упс" в Transactor с помощью новой стратегии. Вот как
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