1 安装依赖包

pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive

注意事项:安装sasl可能会安装失败, 这里可以直接到官网下载

2 案例

from pyhive import hive
import pandas as pd

'''
	读取hive表
'''
def select_pyhive(sql):
	# 配置仅显示列名(默认显示 表名.列名)
    hive_config={'hive.resultset.use.unique.column.names': 'false'}
	
    # 创建hive连接
    conn = hive.Connection(host='localhost', 
                           port=10000,  // hiveserver2服务记得开启
                           auth='CUSTOM', // 注意:如果hive jdbc配置密码了 这个参数需要设置
                           username='***', 
                           password='***',
                           configuration = hive_config,
                           database='ads')
    cur = conn.cursor()
    try:
        # c = cur.fetchall()
        df = pd.read_sql(sql, conn)
        return df
    finally:
        if conn:
            conn.close()


if __name__ == '__main__':
	sql='select * from ads_table1 limit 10'
	df = select_pyhive(sql)
	print(df)

3. 遇到的问题及解决方案

注意:TTransportException: Bad status: 3 (b'Error validating the login') 遇到这个报错,就是输入的账号密码报错了(如果不确定hive jdbc账号密码有问题 可以使用dbeaver连接测试一下)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐