Как подключиться в Python 3.7 к базе данных hadoop / hive (которая требует аутентификации) и выполнить простой запрос SQL? - PullRequest
0 голосов
/ 25 января 2019

Мне нужно подключиться к базе данных hadoop (apache hive), которая требует аутентификации с использованием имени пользователя и пароля.Обычно я обращаюсь к нему с помощью DBeaver (установлены драйверы JDBC), но теперь мне нужно получить данные, используя простой запрос со скриптом в Python 3.7 (не Python 2.x).Я попробовал несколько методов без успеха.У кого-нибудь есть решение, которое работает?

Я пробовал pyhive, presto, pyhs2, impala, ibis

Ответы [ 2 ]

0 голосов
/ 28 января 2019

@ СПАСИБО большое спасибо!

По вашему предложению я создал DSN и смог подключиться и прочитать таблицу, используя следующий код:

import pyodbc
import pandas as pd

table = "table_name"
query = 'SELECT * FROM {0}'.format(table)

with pyodbc.connect("DSN=Hive_connection",autocommit=True) as conn:
    df=pd.read_sql_query(query,conn)
0 голосов
/ 25 января 2019

Вы можете выполнить следующие шаги для подключения куста от python драйвером ODBC на машине Windows,

  1. Установите необходимый драйвер для Hive. Если вы используете Cloudera / Hortonworks, вы можете найти соответствующие драйверы на их веб-сайте.
  2. После завершения установки перейдите в 64-битный администратор ODBC из меню запуска или панели управления.
  3. Заполните необходимые данные сервера и идентификатор пользователя и пароль подключения. Ниже скриншот для того же. enter image description here

  4. Как только это будет сделано, проверьте тестовое соединение, нажав на кнопку Тест, и проверьте, успешно ли оно установлено.

  5. Вы можете использовать тот же DSN при подключении куста от python, ниже приведен фрагмент кода для того же.

    import pyodbc

    импорт панд как pd

    с pyodbc.connect ("DSN =", autocommit = True) как conn: df = pd.read_sql ("", conn)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...