Есть ли драйвер jdbc для Spark SQL?

Я ищу клиентский драйвер jdbc, поддерживающий Spark SQL.

До сих пор я использовал Jupyter для выполнения операторов SQL в Spark (работающий в HDInsight), и я хотел бы иметь возможность подключаться с помощью JDBC, чтобы вместо этого я мог использовать сторонние клиенты SQL (например, SQuirreL, SQL Explorer и т. Д.) интерфейса ноутбука.

Я нашел драйвер ODBC от Microsoft, но это не помогает мне с клиентами SQL на основе Java. Я также попытался загрузить драйвер Hive jdbc из своего кластера, но драйвер Hive JDBC, похоже, не поддерживает более продвинутые функции SQL, чем Spark. Например, драйвер Hive жалуется на то, что не поддерживает операторы соединения, которые не являются равными соединениями, и я знаю, что это поддерживаемая функция Spark, поскольку я успешно выполнил тот же SQL в Jupyter.


person aaronsteers    schedule 09.06.2016    source источник
comment
Вопросы, требующие рекомендаций или помощи в поиске библиотеки или других сторонних ресурсов, не относятся к теме.   -  person Mark Rotteveel    schedule 09.06.2016
comment
simba.com/drivers/spark-jdbc-odbc Simba Apache Spark ODBC и драйверы JDBC эффективно сопоставляют SQL с Spark SQL, преобразовывая SQL-запрос приложения в эквивалентную форму в Spark SQL, обеспечивая прямой стандартный доступ SQL-92 к дистрибутивам Apache Spark. В   -  person kliew    schedule 10.06.2016
comment
Я бы попробовал драйвер jdbc hive, чтобы поговорить с ним.   -  person lockwobr    schedule 10.06.2016
comment
@kliew - Драйвер Simba дорогой, и я надеялся на что-то, что является частью платформы. Похоже, что это недоступно сегодня, и хотя драйвер улья поставляется как часть стека, нет драйвера Spark jdbc с аналогичной емкостью.   -  person aaronsteers    schedule 13.06.2016
comment
@lockwobr - Проблема с драйвером hive заключается в том, что он не поддерживает более широкие функции SQL, поддерживаемые сегодня Spark. Я не понимаю, почему драйвер hive jdbc включен в качестве загружаемого компонента на сервере, но ничего похожего на стороне Spark sql. Может это просто вопрос времени? ...   -  person aaronsteers    schedule 13.06.2016
comment
Я отправил запрос функции HDInsight здесь: feedback.azure.com/forums/34192--general-feedback/suggestions/   -  person aaronsteers    schedule 13.06.2016
comment
поэтому при запуске beeline up, который идет с искрой, вот как выглядит команда java /usr/jdk64/jdk1.7.0_67/bin/java -cp $SPARK_HOME/conf/:$SPARK_HOME/lib/spark-assembly-1.6.1-hadoop2.6.0.jar:$SPARK_HOME/lib/datanucleus-api-jdo-3.2.6.jar:$SPARK_HOME/lib/datanucleus-rdbms-3.2.9.jar:$SPARK_HOME/lib/datanucleus-core-3.2.10.jar:/usr/hdp/current/hadoop-client/conf/ -Xms1g -Xmx1g -XX:MaxPermSize=256m org.apache.hive.beeline.BeeLine может быть, в одной из этих банок есть магия   -  person lockwobr    schedule 13.06.2016


Ответы (1)


драйвер Hive JDBC не поддерживает более продвинутые функции SQL, чем Spark.

Независимо от предоставляемой поддержки, Spark Thrift Server - это полностью совместим с JDBC-соединением Hive / Beeline.

Следовательно, вам нужно использовать именно этот JAR-файл. Я проверил, что это работает в DBVisualizer.

Альтернативным решением было бы запускать код Spark в ваших клиентах Java (сторонних инструментах) напрямую и пропустить необходимость в соединении JDBC.

person OneCricketeer    schedule 07.07.2017
comment
Как запустить код Spark в ваших Java-клиентах? Как подаются запросы? - person user1870400; 20.08.2017
comment
Вы просто компилируете и запускаете ... Не стесняйтесь размещать свой вопрос вне комментариев, чтобы получить более подробные ответы - person OneCricketeer; 20.08.2017
comment
Я не уверен, как можно просто скомпилировать и запустить, не используя искру-отправку? Spark-submit имеет собственный загрузчик классов, который не является загрузчиком классов Java по умолчанию. - person user1870400; 29.08.2017
comment
Я установил IntelliJ и Eclipse для Java / Scala и Hue / Jupyter / Zeppelin для Python / Scala / R. Они не используют искру-отправку - person OneCricketeer; 29.08.2017
comment
вы запускаете свой Java-код вне кластера или внутри кластера? после компиляции? Я знаю, что вы можете использовать Livy для подключения Spark as Rest Service извне кластера, как вы этого добились без драйвера JDBC? - person sri hari kali charan Tummala; 18.04.2018
comment
@sri Ну, вы можете запускать код только после компиляции. JDBC не имеет ничего общего с добавлением кода Spark в существующее приложение JVM. - person OneCricketeer; 18.04.2018
comment
@ cricket_007, у меня вопрос: как получить данные из запросов к таблице кустов вне кластера с помощью искры на клиенте (например, в окнах)? вам нужно использовать драйверы Hive или Spark JDBC, верно? мы прямо сейчас подключаем импалу извне кластера, используя драйвер импала JDBC и сертификаты j из кластера, что мы подключаем - person sri hari kali charan Tummala; 18.04.2018
comment
@sri Нет драйвера Spark JDBC. Драйвер Hive JDBC подключается к Spark ThriftServer, на который есть ссылка в моем вопросе. Вы можете подключить, например, Tableau или другие инструменты бизнес-аналитики. - person OneCricketeer; 18.04.2018