我正在尝试使用SQLAlchemy通过Presto运行配置单元查询。它使用LDAP身份验证,但我在连接字符串中缺少一些内容。
from sqlalchemy.engine import create_engine
conn_string = 'presto://' + user + ':' + passw + '@' + host + ':' + port + db
+ ", connect_args={'auth':LDAP}"
eng = create_engine(conn_string)
我收到一个错误,上面写着:
Protocol must be https when passing a password
我在搜索时看到了一些关于这一点的讨论,但没有看到明确的解决方案。我试过很多有端口、db等的组合,你知道怎么做吗?非常感谢。
我最终使用了另一个有效的库:
import prestodb
conn=prestodb.dbapi.connect(
host=host,
port=port,
user=user,
catalog='db_name',
schema='my_schema',
http_scheme='https',
auth=prestodb.auth.BasicAuthentication(user, passw)
)
然后我能够检索结果并将其放入数据帧中。所以不需要SQLAlchemy。这似乎不必要地复杂。
README
包含以下片段:
create_engine(
'presto://user@host:443/hive',
connect_args={'protocol': 'https',
'session_props': {'query_max_run_time': '1234m'}}
)
似乎您所需要做的就是将'protocol': 'https'
添加到connect_args中。
来自sqlalchemy.engine导入create_engineengine=create_engine('presto://username:password@vmwidpappprd.corp.net网站:8443/hive’,connect_args={'协议':'https','requests_kwargs':{'验证':False}}(db=engine.raw_connection((s=engine.exexecute("SELECT*FROM idp_dim_prd.sales_tritory"(打印对于s中的r:打印