Как подключиться к 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
Другие вопросы по тегам