如何使用pyhive在python中运行presto查询



我正在尝试使用 pyhive 库在 python 中运行 presto 查询,但最大重试次数错误即将到来。我在本地(笔记本电脑(的 jupyter 笔记本中运行它。我认为它无法连接到presto节点。我正在使用 Azure hdinsight 群集并在头节点上安装了 presto 应用程序(使用星爆分发(。我使用了群集用户名和密码,也尝试了头节点 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')

我得到的错误是:

连接错误: 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')

我想我在这里错过了一些关键的东西。 请帮忙。

听起来像是一个权限/身份验证问题。 我目前正在我的本地机器上使用 Jupyter 笔记本 t 使用 prestodb 库像这样查询公司 Presto 集群。

所以基本上:

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])

相关内容

  • 没有找到相关文章

最新更新