Python操作Hive数据仓库

Python连接Hive

1、Python如何连接Hive?

Python连接Hive需要使用Impala查询引擎

由于Hadoop集群节点间使用RPC通信,所以需要配置Thrift依赖环境

Thrift是一个轻量级、跨语言的RPC框架,主要用于服务间的RPC通信。由Facebook于2007年开发,2008年进入Apache开源项目

sasl模块是Python中用于实现SASL(Simple Authentication and Security Layer)认证的第三方库,提供了对各种SASL机制的支持,例如与Kafka、Hadoop等进行安全通信

经过验证,以下模块都是Python连接Hive的环境依赖:

shell 复制代码
pip install bitarray
pip install bit_array
pip install thrift
pip install thriftpy
pip install pure_sasl
pip install --no-deps thrift-sasl==0.2.1

安装Impyla模块:

shell 复制代码
pip install impyla

如果安装Impyla报错:

shell 复制代码
ERROR: Failed building wheel for impyla

则需要下载对应的whl文件安装:

Python扩展包whl文件下载:https://www.lfd.uci.edu/~gohlke/pythonlibs/

Ctrl+F查找需要的whl文件,点击下载对应版本

安装:

shell 复制代码
pip install whl文件绝对路径

2、Python连接Hive数据仓库

1) 启动Hadoop集群

2) 使用hiveserver2开启Hive的JDBC服务

3) 基本使用

python 复制代码
from impala.dbapi import connect
from impala.util import as_pandas

# 连接Hive
conn = connect(host='bd91', port=10000, auth_mechanism='PLAIN', user="root", password="123456", database="default")
# 创建游标
cursor = conn.cursor()
# 执行查询
cursor.execute("select * from stu")
# 结果转换为DataFrame
df = as_pandas(cursor)
print(df.to_string())
# 关闭连接
cursor.close()
conn.close()
相关推荐
刘晓倩5 分钟前
Python3的Sequence
开发语言·python
ZhengEnCi10 分钟前
一次多线程同步问题的排查:从 thread_count 到 thread.join() 的踩坑之旅
python·网络协议·tcp/ip
ULTRA??14 分钟前
ROS Action 完整示例(AI辅助):客户端发目标 + 服务器接参数(lambda 替代 boost::bind)
c++·python
free-elcmacom16 分钟前
用Python玩转GAN:让AI学会“造假”的艺术
人工智能·python·机器学习
计算机毕设匠心工作室26 分钟前
【python大数据毕设实战】全国健康老龄化数据分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习
后端·python
Dxy12393102161 小时前
Python的PIL对象crop函数详解
开发语言·python
翔云 OCR API1 小时前
护照NFC识读鉴伪接口集成-让身份核验更加智能与高效
开发语言·人工智能·python·计算机视觉·ocr
三好kiii1 小时前
海康威视热成像摄像头温度矩阵提取实战:ISAPI + Python 实现无 SDK 读取
图像处理·python
logocode_li1 小时前
面试 LoRA 被问懵?B 矩阵初始化为 0 的原因,大多数人拿目标来回答
人工智能·python·面试·职场和发展·矩阵