
python连接hive的几种方式
·基于pyhive连接hive。
·基于impyla连接hive。
方法一:使用PyHive库
安装依赖包:其中sasl安装可能会报错,可以去https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl下载对应版本安装。
1 2 3 4 | pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive
|
相关推荐:《Python基础教程》
Python脚本代码操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 | from pyhive import hive # or import hive
conn = hive.Connection(host= '****' , port=****, username= '****' , database= '****' )
cursor.execute( '' SELECT * FROM my_awesome_data LIMIT 10 '' )
for i in range(****):
sql = "INSERT INTO **** VALUES ({},'username{}')" .format(value, str(username))
cursor.execute(sql)
# 下面是官网代码:
from pyhive import presto # or import hive
cursor = presto.connect( 'localhost' ).cursor()
cursor.execute( 'SELECT * FROM my_awesome_data LIMIT 10' )
print (cursor.fetchone())
print (cursor.fetchall())
|
方法二:使用impyla库
impyla依赖包:
1 2 3 | pip install six
pip install bit- array
pip install thriftpy
|
为了支持Hive还需要以下两个包:
1 2 | pip install sasl
pip install thrift-sasl
|
可在Python PyPI中下载impyla及其依赖包的源码
Python脚本代码:
1 2 3 4 5 6 | from impala.dbapi import connect
conn = connect(host = '****' ,port = ****)
cursor = conn.cursor()
cursor.execute( 'SELECT * FROM mytable LIMIT 100' )
print cursor.description # 打印结果集的schema
results = cursor.fetchall()
|