ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【大数据】windows 下python3连接hive

2020-05-27 18:05:06  阅读:406  来源: 互联网

标签:impyla windows hive install pip sasl 安装 python3 thrift


注意:impyla 既可以连接impala, 也可以连接hive

环境 : windows10

python版本:3.6

hive版本:1.1 

亲测可用!

 

impyla安装过程

安装依赖

pip install bit_array

pip install thrift

pip install thriftpy

pip install pure_sasl

pip install --no-deps thrift-sasl==0.2.1

安装impyla

pip install impyla

连接Hive

# -*-coding:utf-8 -*-
from impala.dbapi import connect
conn = connect(host='ip', port=port, database='default', user='user_name', password='password', auth_mechanism="PLAIN")
cur = conn.cursor()
cur.execute('show tables')
print(cur.fetchall())

注意事项

1.重点不要安装sasl,否则会提示报错

卸载方式:pip uninstall sasl

2.在安装过程中,如果出现包安装失败的情况,可以下载whl包进行安装,下载链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/

安装方式:pip install 包的绝对路径

3.如果在安装过程中,出现任何包安装失败的问题,可以先将之前所有安装过的包统统卸载,再按顺序依次安装一次

 

 

问题集锦

impyla (0.14.0) ERROR - 'TSocket' object has no attribute 'isOpen'

这个问题的原因是thrift-sasl版本过高导致的,将其换成0.2.1的版本即可

pip install thrift-sasl==0.2.1

thriftpy2.protocol.exc.TProtocolException: TProtocolException(type=4)

这是由于auth_mechanism设置的问题导致的,加上或将其改为auth_mechanism="PLAIN"即可

TypeError: can’t concat str to bytes

修改 thrift-sasl init.py,在第94行之前加上以下语句即可:

if (type(body) is str):
    body = body.encode()

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'

这是Windows下采用pyhive连接方式提出的错误,正如前言所述,可能需要修改对应的配置文件,也可能sasl根本就不支持Windows,建议改用impyla形式连接

thriftpy.parser.exc.ThriftParserError: ThriftPy does not support generating module with path in protocol 'c'

修改thriftpy包下\parser\parser.py"中第488行代码,将"if url_scheme == '':" 修改为"if len(url_scheme) <=1:"即可

 

转载自 https://www.aitolearn.com/article/9a06a8e1ff5e4252aa2373eb3cc4fed8

标签:impyla,windows,hive,install,pip,sasl,安装,python3,thrift
来源: https://www.cnblogs.com/TurboWay/p/12975034.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有