本文记录使用Linux下,Python连接Impala获取某表的数据过程。
一、安装需要的包
安装了以下的包:
bitarray-1.5.1.tar.gz
six-1.14.0-py2.py3-none-any.whl
thrift-0.13.0.tar.gz
ply-3.11.tar.gz
thriftpy2-0.4.11.tar.gz
yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64
sasl-0.2.1.tar.gz
thrift_sasl-0.4.2.tar.gz
thrift-0.13.0.tar.gz
impyla-0.16.2.tar.gz
二、测试链接是否成功
import pandas as pd
from impala.dbapi import connect
from impala.util import as_pandas
import datetime
from sqlalchemy import create_engine
print('开始测试链接')
conn = create_engine("impala://用户名:密码@IP:port/库名?auth_mechanism=PLAIN")
print('get data....')
data = pd.read_sql("select * from 表名", con=conn)
print('获取数据结束,打印数据。')
print(data)
print('finish...')
三、遇到的问题
在测试连接时,遇到一下问题:
四、解决
经过在网上的多次查找,终于找到错误原因:thrift_saal版本不匹配。故,进行一下操作:
1)删除:
thrift_sasl-0.4.2.tar.gz
2)安装:
Cython-0.29.21-cp37-cp37m-manylinux_x86.64.whl
thriftpy-0.3.9.tar.gz
thrift_sasl-0.2.1.tar.gz
OK.