python访问hive数据库踩坑指南
最近做数据ETL系统的更新,需要将原有ETL任务迁移到新的系统中,并验证数据的准确性。
目录
安装依赖包
核心代码
遇到的坑
依赖包版本
安装依赖包
因为本人电脑是win本,所以只能使用impyla连接;其他系统还可以使用PyHive包进行连接
pip install impyla
pip install pure-sasl
pip install thrift_sasl
pip install thrift
pip install sasl
注意点:
直接使用pip安装sasl时,一般会报错!可以直接在前往https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl下载对应版本安装。(目前最高支持python3.7,更高的版本无法安装,后续是否支持待定)
核心代码
from impala.dbapi import connect
from pandas.testing import assert_frame_equal
import pandas as pd# 连接hive
hive_conn = connect(host='127.0.0.1', port=12446, database=db_name,user=user, password=password, auth_mechanism='PLAIN')
cursor = hive_conn.cursor()
# 查询数据量
cursor.execute('select count(1) from %s where %s = %s' % (table_name, pt_col, date))
ret = cursor.fetchall()
for j in ret:print(j)
ret = pd.DataFrame(ret)
print(ret)
遇到的坑
1、
TypeError: can’t concat str to bytes
根据报错信息定位错误在\lib\site-packages\thrift_sasl\__init__.py第94行
header = struct.pack(">BI", status, len(body))
self._trans.write(header + body)
修改为
header = struct.pack(">BI", status, len(body))
if(type(body) is str):body = body.encode()
self._trans.write(header + body)
2、
thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'
此种错误是sasl包版本原因, 直接将原来安装sasl包卸载,然后重新安装0.2.0 版本的thrift-sasl即可
3、
ThriftParserError: ThriftPy does not support generating module with path in protocol ‘c’
根据报错信息定位到 \Lib\site-packages\thriftpy\parser\parser.py
if url_scheme == '':with open(path) as fh:data = fh.read()
elif url_scheme in ('http', 'https'):data = urlopen(path).read()
else:raise ThriftParserError('ThriftPy does not support generating module ''with path in protocol \'{}\''.format(url_scheme))
修改为
if url_scheme == '':with open(path) as fh:data = fh.read()
elif url_scheme in ('c', 'd','e','f''):with open(path) as fh:data = fh.read()elif url_scheme in ('http', 'https'):data = urlopen(path).read()
else:raise ThriftParserError('ThriftPy does not support generating module ''with path in protocol \'{}\''.format(url_scheme))
依赖包版本
thrift | 0.13.0 |
thrift-sasl | 0.2.1 |
thriftpy | 0.3.9 |
thriftpy2 | 0.4.0 |
bit-array | 0.1.0 |
bitarray | 2.2.3 |
pure-sasl | 0.6.2 |
impyla | 0.15a1 |
python访问hive数据库踩坑指南相关推荐
- 内网穿透,使用 IPv6 公网访问内网设备踩坑指南
本文是开启宽带 IPv6 功能并使用公网 IPv6 地址访问内网设备的踩坑指南.IPv6 是目前个人体验最优的内网访问方案,个人体验远胜过 ZeroTier,frp 等方案. 场景 将个人设备暴露于公 ...
- pytorch .item_从数据到模型,你可能需要1篇详实的pytorch踩坑指南
原创 · 作者 | Giant 学校 | 浙江大学 研究方向 | 对话系统.text2sql 熟悉DL的朋友应该知道Tensorflow.Pytorch.Caffe这些成熟的框架,它们让广大AI爱好者 ...
- tabbar角标 小程序_【沃行课堂】恭喜你遇到“坑”,小程序踩坑指南
上周我们的开发小哥哥带领我们一起领略了开发中遇到的各种问题,以及基于SaaS模式的平台技术架构及实现.本周我们换个方向,由高级开发工程师秋哥带领大家共同探讨下小程序开发中踩过的坑.秋哥会从公司的几个小 ...
- MacBook通过XGP玩女神异闻录5皇家版不踩坑指南
XGP是微软Xbox游戏通行证服务,全称Xbox Game Pass,俗称西瓜皮. 女神异闻录5皇家版(P5R)登录了全平台,XGP会员可以通过云游戏在MacBook中游玩,本篇为MacBook玩P5 ...
- Spring Cloud踩坑指南
Spring Cloud踩坑指南 1 Spring Cloud搭建 参考 Spring Cloud 微服务技术栈:搭建高可用 Eureka Server.服务注册与发现 2 常见问题 2.1 修改ho ...
- 阿里云天池【Docker练习场】踩坑指南
阿里云天池[Docker练习场]踩坑指南 题目直达 提交环境搭建(基于macOS) Docker的安装与基本功能使用 Docker安装过程遇到的小问题 提交结果注意事项 提交时的镜像配置 项目结构规范 ...
- 我的域名注册踩坑指南
我的域名注册踩坑指南 一.前言 二.目前拥有的纯字母域名 ds.mba csu.asia mpkq.org impkq.com openhm.com okotlin.com ktanjava.com ...
- windows系统安装docker版本davinci达芬奇踩坑指南
本文讲解windows系统如何安装docker版开源软件davinci(数据可视化web服务),并指出一系列的踩坑指南. 达芬奇github地址 https://github.com/edp963 ...
- Egg整合antd文件上传以及防踩坑指南
Egg整合antd文件上传以及防踩坑指南 前言 一. 项目编写 二. 注意事项 2.1 清理缓存 2.2 antd的Upload组件得到的事件对象问题 2.3 关于onChange事件的注意 前言 最 ...
最新文章
- 程序员期末试卷_第三部分复习提纲.doc下载
- 客户花钱雇黑客,竟是为Zoom找bug:风口浪尖的视频会议No.1,安全问题如此魔幻...
- MySQL数据库导入或者同步大量数据时数据丢失解决方案
- UVa11039 Building designing(贪心算法)
- 《程序员代码面试指南第二版》Python实现(个人读书笔记)
- 研发协同平台数据库死锁处理及改进
- 红头文件rgb红色值_拿下抖音小姐姐,我写了个口红色号识别器
- AI 会替代程序员?超好用的自动补全代码工具 Deep TabNine!
- MYSQL ERROR 1045 错误的解决办法 (转)
- Flutter高级第7篇:点击穿透问题、页面禁止左右滑动
- Output path is shared between the same module error
- MATLAB利用小波分析提取周期
- 实战攻防比赛中作为防守方需要做哪些工作
- centos oracle 修改监听服务名_虚拟机(Oracle Virtual Box)下ORACLE的安装
- 区间调度问题(最大利润作业调度问题)
- 并行查询的执行计划解读
- 在腾讯的八年,我的职业思考!
- Word如何操作压缩图片?干货经验!怎么在Word中压缩图片?
- thinkphp 启动worker
- 【路径规划】基于matlab DWA动态避障路径规划【含Matlab源码 2356期】
热门文章
- python 警告:simplify chained comparison
- 关于视频软件开发的技术
- Java三大框架SSH面试题锦集
- Fortinet :《2021 年OT与网络安全现状报告》之「要点综述」
- 已知四种原子的质量,C/H/O/N分别为12/1/16/14,输入分子式,计算分子量。例如H2O,分子量为1*2+16=18,有如HC11N2,分子量为1+12*11+14*2=161
- 【AI绘画 | draft意间】国产draft推荐及AI绘画背后的原理解读
- 如何打开pkl文件,pkl是什么类型的文件?
- 不得不服!java面试初试和复试的区别
- svn版本更迭的原理
- 大一第二学期课程总结