通过sqlalChemical连接黑斑羚
问题描述
我是Hadoop和Imala的新手。通过安装impyla并执行以下代码,我设法连接到了Imala。这是通过LDAP进行的连接:
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")
然后我可以抓取游标并执行查询,如下所示:
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引擎,如下所示:
engine = create_engine('impala://localhost')
我希望能够做到这一点,但是我做不到,因为我对上面的connect函数的调用有更多的参数;我不知道如何将这些参数传递给sqlalChemy的create_engine以获得成功的连接。有人这么做过吗?谢谢。
解决方案
如https://github.com/cloudera/impyla/issues/214
所述import sqlalchemy
def conn():
return connect(host='some_host',
port=21050,
database='default',
timeout=20,
use_ssl=True,
ca_cert='some_pem',
user=user, password=pwd,
auth_mechanism='PLAIN')
engine = sqlalchemy.create_engine('impala://', creator=conn)
相关文章