1.安裝impyla
pip install impyla
2.在superset頁面配置如下,此時impala是有kerberos認證的
impala://xxxx:xx/default?auth_mechanism=GSSAPI&kerberos_service_name=impala
如果遇到下面的問題,是thrift-sasl版本過高
The error message returned was:\n'TSocket' object has no attribute 'isOpen'
降級為0.2.1版本就可以
pip list | grep thrift-sasl thrift-sasl 0.3.0 pip install thrift-sasl==0.2.1
測試,ok

查詢

當將thrift-sasl從0.3.0降級為0.2.1之后,連接hive會報
from pyhive import hive ImportError: cannot import name 'constants'

解決方法是將原來hive的uri從
hive://xxx:xxx/default?auth=KERBEROS&kerberos_service_name=hive
修改為
impala://xxx:xxx/default?auth_mechanism=GSSAPI&kerberos_service_name=hive

同時附上impala和hive查詢的時間對比,impala要快很多
hive

impala

其中city為array,在impala中不能使用select語句來查詢,因為impala中select語句只支持標量

如果要在impala中查詢array中的數據,需要這么查
select * from default.arraydemo, default.arraydemo.city
結果,這是將array中的數據進行了展平

