python连接hive报错:TypeError: can‘t concat str to bytes

news/2024/5/20 20:43:39

目录

一、完整报错

二、解决

三、 其他报错

四、impala方式连接hive


或者直接使用 pip install pyhive[hive] 安装。需要先 pip uninstall pyhive。

一、完整报错

Traceback (most recent call last):
  File "D:/Gitlab/my_world/hive2csv.py", line 18, in <module>
    conn = hive.Connection(host=host, port=port, username=username, password=password, database=database, auth=auth)
  File "D:\Anaconda3\lib\site-packages\pyhive\hive.py", line 269, in __init__
    self._transport.open()
  File "D:\Anaconda3\lib\site-packages\thrift_sasl\__init__.py", line 82, in open
    self._send_message(self.START, chosen_mech)
  File "D:\Anaconda3\lib\site-packages\thrift_sasl\__init__.py", line 103, in _send_message
    self._trans.write(header + body)
TypeError: can't concat str to bytes

二、解决

        2.1、进入D:\Anaconda3\lib\site-packages\thrift_sasl\__init__.py文件

        2.2、添加如下代码到第101行之前

if (type(body) is str):body = body.encode()
2.2,修改后情况

        然后就可以运行了。

三、 其他报错

        报错:AttributeError: 'TSaslClientTransport' object has no attribute 'readAll'

        解决:pip install thrift_sasl==0.3.0

其他报错可以参考文章:python连接hive

四、impala方式连接hive

        4.1、依赖包

pip install six bit_array thrift thrift_sasl sqlalchemy impyla -i https://pypi.tuna.tsinghua.edu.cn/simple

        4.2、代码

from impala.dbapi import connectconn = connect(host=host,port=port,user=username,password=password,auth_mechanism=auth,database=database)
def get_sql_result(sql):# 鎵ц鏌ヨ骞惰幏鍙栫粨鏋?    cursor = conn.cursor()cursor.execute(sql)result = cursor.fetchall()columns = [desc[0] for desc in cursor.description]return result,columnsif __name__ == '__main__':hive_sql = 'show databases'result,columns = get_sql_result(hive_sql)df = pd.DataFrame(result,columns=columns)

 


https://www.xjx100.cn/news/3091920.html

相关文章

ubuntu中经常脚本汇总

ubuntu中经常脚本汇总 # get pascal voc # standard voc mkdir -p data cd data wget -c http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar tar -xvf VOCtrainval_11-May-2012.tar wget -c http://pjreddie.com/media/files/VOC2012test.tar tar -…

如何使用 RTLS?

RTLS 的不同应用几乎是无限的。毕竟&#xff0c;几乎任何人都可以从更好地了解事物的实时变化中受益。位置数据的一般价值导致了各种各样的最终用途应用&#xff0c;从制造工作跟踪、库存管理、堆场管理、供应链和物流&#xff0c;到医疗保健、动物跟踪以及采矿和采矿业人员的安…

ES索引数据清理脚本示例

说明&#xff1a;我得索引是按月份创建的&#xff0c;索引名后面都有yyyy.MM 需求&#xff1a;删除三个月以前的索引&#xff0c;清理收集的应用日志数据&#xff0c;释放磁盘空间 #!/bin/bash# 定义 Elasticsearch 节点的地址 ELASTICSEARCH_HOST"192.168.53.100" …

开发盲盒商城的意义

开发盲盒商城的意义在于为电商行业带来新的增长机会&#xff0c;满足消费者对购物方式趣味性的需求&#xff0c;同时提升用户的参与度&#xff0c;为商家带来更多销售机会和增强影响力的机遇。 盲盒商城系统通过独特的盲盒玩法&#xff0c;为用户带来了全新的趣味购物体验&…

【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解

【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解前言Inception-ResNet讲解Inception-ResNet-V1Inception-ResNet-V2残差模块的缩放(Scaling of the Residuals)Inception-…

ueditor整合到thinkPHP里

<?phpnamespace app\ueditor\controller;use think\Controller;class Ueditor extends Controller {//首页public function upload(){//header(Access-Control-Allow-Origin: http://www.baidu.com); //设置http://www.baidu.com允许跨域访问//header(Access-Control-Allow…

请求的接口响应状态为已取消的原因

有趣的iframe问题 今天遇到一个问题&#xff0c;当点击了按钮----跳转页面时----F12键点击网络中的状态报了已取消&#xff0c;类型是 document说明是前端页面的问题&#xff0c;如果是xhr那可能是接口的问题。 原本是写了3个iframe,页面刷新的时候请求了第一个iframe,然后就…

第四代智能井盖传感器,实时守护井盖位安全

城市管理中井盖的安全问题始终是一个不容忽视的方面。传统的巡检方式不仅效率低下&#xff0c;无法实现实时监测&#xff0c;而且很难准确掌握井盖的异动状态。因此智能井盖传感器的应用具有重要意义。这种智能传感器可以帮助政府实时掌握井盖的状态&#xff0c;一旦发现异常情…