1.安装impyla
1 | pip install impyla |
2.在superset页面配置如下,此时impala是有kerberos认证的
1 | impala://xxxx:xx/default?auth_mechanism=GSSAPI&kerberos_service_name=impala |
如果遇到下面的问题,是thrift-sasl版本过高
1 | The error message returned was:\n'TSocket' object has no attribute 'isOpen' |
降级为0.2.1版本就可以
1 | pip list | grep thrift-sasl |
测试,ok

查询

当将thrift-sasl从0.3.0降级为0.2.1之后,连接hive会报
1 | from pyhive import hive ImportError: cannot import name 'constants' |

解决方法是将原来hive的uri从
1 | hive://xxx:xxx/default?auth=KERBEROS&kerberos_service_name=hive |
修改为
1 | impala://xxx:xxx/default?auth_mechanism=GSSAPI&kerberos_service_name=hive |

同时附上impala和hive查询的时间对比,impala要快很多
hive

impala

其中city为array,在impala中不能使用select语句来查询,因为impala中select语句只支持标量

如果要在impala中查询array中的数据,需要这么查
1 | select * from default.arraydemo, default.arraydemo.city |
结果,这是将array中的数据进行了展平
