使用presto-python-client的用户名和密码

时间:2018-12-30 11:55:32

标签: python-2.7 presto

我正在尝试替换 jaydebeapi与Facebook的presto-python-client 问题是如何替换身份验证位

db = jaydebeapi.connect(connection['jclass'], connection['host'],[ connection['user'], connection['pass']], connection['jar'])

在使用presto-python-client时

import prestodb
conn= prestodb.dbapi.connect(
    host='localhost',
    port=8080,
    user='the-user',
    catalog='the-catalog',
    schema='the-schema',
    isolation_level=transaction.IsolationLevel.REPEATABLE_READ,
)

,我找不到任何地方可以指定如何传递密码。 进行此更改的原因是,尝试使用jaydebeapi传递长查询(18k个字符)时遇到了多个错误

2 个答案:

答案 0 :(得分:1)

我们最终使用了SQLAlchemy,所以解决方案是

from sqlalchemy.engine import create_engine 
engine = create_engine('presto://{0}:{1}@{2}:{3}/hive'.format(connection['user'],connection['pass'],connection['host'],int(connection['port'])), connect_args={'protocol': 'https', 'requests_kwargs': {'verify': False}}) 
db = engine.raw_connection()

答案 1 :(得分:1)

现在不赞成使用旧方法,因此这里是要连接到presto的新方法

cursor = presto.connect(presto_host,
                                presto_port,
                                requests_kwargs={'auth': HTTPBasicAuth(presto_username, presto_password)},
                                poll_interval=1,
                                protocol='https',
                                source='pyhive').cursor()