Python提供了操作hive数据仓库的API接口,一下记录Windows和Linux系统环境的环境配置和语法。目前笔者在Windows上不能成功运行程序,依然写下Windows平台配置。
1,安装三方库:
Windows:
sasl/thrift/thriftsasl/pyhive,其中thrift/thrift_sasl/pyhive可直接通过pip或者conda直接安装;sasl需要到如下网址下载whl文件安装:https://www.lfd.uci.edu/~gohlke/pythonlibs/,搜索下载对应版本的xxx.whl文件到本地,通过pip install xxx.whl来安装。
Linux:
sasl/thrift/thriftsasl/pyhive,直接通过pip即可安装。
2,代码实例:
from pyhive import hive
import sasl
import thrift
import thrift_sasl
import pysnooper
@pysnooper.snoop()
def read_hive(host, port, username, password, auth):
conn = hive.Connection(host=host, port=port, username=username, password=password, auth=auth)
cursor = conn.cursor()
query_sql = 'select * from user_table limit 10'
cursor.execute(query_sql)
result = cursor.fetchall()
cursor.close()
conn.close()
for res in result:
print(res)
return result
实例化Connection传参,auth为‘CUSTOM’,如果运行结果报错:thrift.transport.TTransport.TTransportException: TSocket read 0 bytes,则在hive集群机器修改配置文件:
打开hive-site.cml,增加如下内容:
hive.server2.authentication
NOSASL
3,以上步骤执行下来,Linux系统代码运行OK,Windows系统代码运行依然报错。