首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过sqlalchemy的impala连接

通过sqlalchemy的impala连接
EN

Stack Overflow用户
提问于 2016-09-20 06:07:37
回答 3查看 8.1K关注 0票数 2

我是hadoop和impala的新手。通过安装impyla并执行以下代码,我成功地连接到impala。这是通过LDAP连接:

代码语言:javascript
运行
复制
from impala.dbapi import connect
from impala.util import as_pandas
conn = connect(host="server.lrd.com",port=21050, database='tcad',auth_mechanism='PLAIN', user="alexcj", use_ssl=True,timeout=20, password="secret1pass")

然后,我可以抓取游标并执行查询,如下所示:

代码语言:javascript
运行
复制
cursor = conn.cursor()
cursor.execute('SELECT * FROM tab_2014_m LIMIT 10')
df = as_pandas(cursor)

我希望能够使用sqlalchemy连接到impala,并能够使用一些很好的sqlalchemy函数。我找到了a test file in imyla source code,它演示了如何使用impala驱动程序创建sqlalchemy引擎,如下所示:

代码语言:javascript
运行
复制
engine = create_engine('impala://localhost')

我希望能够做到这一点,但我不能这样做,因为我对上面的connect函数的调用有更多的参数;我不知道如何将这些参数传递给sqlalchemy的create_engine以获得成功的连接。有人这么做过吗?谢谢。

EN

Stack Overflow用户

发布于 2021-12-22 18:58:13

如果您的Impala是由Kerberos保护的,下面的脚本是有效的(由于某种原因,我需要使用hive://而不是impala://)

代码语言:javascript
运行
复制
import sqlalchemy
from sqlalchemy.engine import create_engine

connect_args={'auth': 'KERBEROS', 'kerberos_service_name': 'impala'}
engine = create_engine('hive://impalad-host:21050', connect_args=connect_args)

conn = engine.connect()
ResultProxy  = conn.execute("SELECT * FROM db1.table1 LIMIT 5")

print(ResultProxy.fetchall())
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39582842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档