Как выполнить предварительные запросы в Python, используя Pyhive?

Я пытаюсь выполнить предварительный запрос в Python, используя библиотеку Pyhive, но приходит ошибка max retries. Я запускаю его в ноутбуке Jupyter локально (ноутбук). Я думаю, что он не может подключиться к узлу Presto. Я использую кластер Azure hdinsight и установил приложение Presto на головном узле (с использованием распределения starburst). Я использовал имя пользователя и пароль кластера, а также я попробовал имя пользователя и пароль ssh головного узла, но ничего не работает. Ниже мой код:

from pyhive import presto
conn= presto.connect(
    host='clustername-ssh.azurehdinsight.net',
    port=8085,
    username='sshuser'
    password='sshpassword',
    protocol='https'
    ).cursor()
conn.execute('SELECT * FROM hive.default.parquettest limit 1')

Ошибка, которую я получаю:

ConnectionError: HTTPConnectionPool (host = 'sm-hdinsight01-ssh.azurehdinsight.net', port = 8085): превышено максимальное количество попыток с помощью оператора url: /v1/ (вызвано NewConnectionError(': не удалось установить новое соединение: [Errno 110] Время соединения истекло',))

Но когда я запускаю его в терминале головного узла, он работает:

from pyhive import presto
conn= presto.connect(
    host='localhost',
    port=8085).cursor()
conn.execute('SELECT * FROM hive.default.parquettest limit 1')

Я думаю, что мне здесь не хватает какой-то важной вещи. пожалуйста помоги.

0 ответов

Звучит как проблема с разрешением / аутентификацией. В настоящее время я использую ноутбук jupyter на своем локальном компьютере, чтобы запросить кластер компании presto, как это, используяprestodb библиотека.

так в основном:

import prestodb

conn=prestodb.dbapi.connect(
    host='presto.bar.foo.com',
    port=80, user='foo',
    password='bar'
    catalog='hive',
    schema='default',
)

cur = conn.cursor()
cur.execute(
'SELECT * FROM "schema"."db" limit 10')
records = cur.fetchall()
print(records[0])
Другие вопросы по тегам