python连接hive--impyla

本文详细介绍了在Python环境中安装Impyla的过程,包括针对不同Python版本的依赖包安装步骤,以及在遇到常见编译错误时的解决方案。同时,提供了Impyla连接HiveServer2和Impala的示例代码,帮助读者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

impyla安装

连接hiveserver2的python的client端,可以提供impala、hive的使用功能。

python2.7

pip install thrift_sasl==0.2.1
pip install thrift
pip install six
pip install bit_array
pip install impyla

python3.3+

pip install thrift_sasl==0.2.1
pip install thrift
pip install thriftpy
pip install six
pip install bit_array
pip install impyla

或者

pip install thrift_sasl
pip install thrift==0.9.3
pip install thriftpy
pip install six
pip install bit_array
pip install impyla

注意

如果初始安装有如下错误

In file included from sasl/saslwrapper.cpp:254:0:
    sasl/saslwrapper.h:22:23: 致命错误:sasl/sasl.h:没有那个文件或目录
     #include <sasl/sasl.h>
                         ^
    编译中断。
    error: command 'gcc' failed with exit status 1

解决思路如下:

1.确认gcc是否安装,若安装则进行下一步

2.1 cesnos解决方案

yum install cyrus-sasl-lib.x86_64
yum install cyrus-sasl-devel.x86_64
yum install libgsasl-devel.x86_64
yum install saslwrapper-devel.x86_64
一般前三句就可以

2.2 Ubuntu解决方案

sudo apt-get install libsasl2-dev

impyla的使用

hive/impala的连接demo

from impala.dbapi import connect

#hive
conn = connect(host='172.31.28.201',port=10000,auth_mechanism='PLAIN')
#impala
#conn=connect(host='172.31.28.201',port=21050,auth_mechanism='NOSASL')

cur = conn.cursor()

# cur.execute('SHOW DATABASES')
# print(cur.fetchall())
cur.execute("use test")

cur.execute('''
    show create table tbl_test_b4
''')
for row in cur:
    print(row[0])

cur.execute("""
    select * from tbl_test_b4 limit 10
""")
print('-------------------------------------------------------------------------------------------')
for row in cur:
    print("this row length is %d"%len(row))
    print(row)
#     print('data_1->%s,data_2->%s,data_3->%s,data_4->%s,data_5->%s'%(row[0],row[1],row[2],row[3],row[4]))
    print('***************************************************************************************')

cur.close()
conn.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值