Как подключиться к 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) [error] at doobie.free.KleisliInterpreter $ ConnectionInterpreter $$ anonfun $ rollback $ 1.apply (kleisliinterpreter.scala: 643) [error] at doobie.free. KleisliInterpreter $$ anonfun $ primitive $ 1 $$ anonfun $ apply $ 1.apply (kleisliinterpreter.scala: 99)

Как мне подключиться к Hive с помощью Doobie?


person KailuoWang    schedule 12.10.2018    source источник


Ответы (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
person KailuoWang    schedule 12.10.2018