- 安装py包(按下面顺序):
Pip install six
Pip install bit_array
Pip install thriftpy
Pip install sasl (将下面whl文件copy到本地桌面 - > cd desktop - > pip install sasl-0.2.1-cp36-cp36m-win_amd64.whl)
Pip install thrift_sasl==0.2.1
Pip install impyla
Pip install pure-sasl
- 代码修改:
2.1 修改parser.py
C:\ProgramData\Anaconda3\Lib\site-packages\thriftpy\parser
增加下面几行代码:
elif url_scheme in (‘c’,‘d’,‘e’,‘f’):
with open(path) as fh:
data = fh.read()
2.2 修改 _thirft_api.py
C:\ProgramData\Anaconda3\Lib\site-packages\impala_thrift_api.py
151行改为:import error
2.3 修改_init_.py
C:\ProgramData\Anaconda3\Lib\site-packages\thrift_sasl_init_.py
94行增加下面两行:
if (type(body) is str):
body = body.encode()
- 连接和取数
from impala.dbapi import connect
conn = connect(host=‘10.8.49.171’, port=10000,timeout=3600,database=XXX,user=XXX,password=XXX,auth_mechanism=‘PLAIN’)
cur = conn.cursor()
cur.execute(“XXX”)
cur.descripton #取表头
cur.fetchall() #取数值