Как я могу запросить внешнюю таблицу кустов, используя блоки данных - PullRequest
2 голосов
/ 16 апреля 2020

У меня есть кластер Databricks, работающий на некоторых виртуальных машинах. В моей организации есть кластер oop с кучей данных, которые мне нужны. У меня нет доступа к кластеру Had oop, только URL JDB C (все мои разрешения были разобраны, мне дали только URL).

Я могу открыть инструмент управления базой данных на моем локальном компьютере (Dbeaver) и успешно запрашивайте таблицы Hive.

Однако я пытаюсь запросить таблицы Hive, используя Databricks и PySpark. Похоже, что для установки строки подключения для HiveContext я обычно записывал бы ее в файл hive-site. xml. Однако Databricks не дает мне такой возможности.

Я на Улей 2.1.1 и Databricks 6.4 (включает в себя Apache Spark 2.4.5, Scala 2.11)

Теперь я не знаю, как просто подключиться к моей базе данных Hive.

# Spark context sc is implicit in Databricks
hive_context = spark.HiveContext(sc)

# I want to be able to do something like
df = hive_context.sql("SELECT...")

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Указав конфигурацию для hive.metastore.uris во время вызова разработчика sparksession, вы решите вашу проблему, если вы работаете из любого другого дистрибутива, но для блоков данных вам нужно отредактировать spark config для вашего кластера.

Ниже вы можете найти ответы -

Как подключить Spark SQL к удаленному метасольве Hive (по экономическому протоколу) без сайта улья. xml?

Как добавить конфигурацию Spark в кластер Databricks

0 голосов
/ 24 апреля 2020

Это самый противоречивый ответ c, но с самого начала это была проблема брандмауэра внутри моей организации, а не файлы jar. Моя организация разрешает и блокирует доступ к и из различных источников по мере необходимости. Как ни стыдно, но, поверьте мне, это было неочевидно из ошибки!

В Databricks многие из этих jar-файлов предварительно загружены. Так что этого кода было бы достаточно, чтобы установить sh соединение все время.

import java.sql.DriverManager
val connection = DriverManager.getConnection("jdbc:hive2://hostname:10000/dbname", "usrname", "psswrd")
connection.isClosed()

Это пример моих ошибок поиска в Google и следования подсказкам на различных форумах, включая SO, безрезультатно. Я говорил с МСП Databricks, чтобы решить эту проблему в сети.

...