使用PyHive操作Hive
1.环境:Cloudera
cloudera是一个hadoop的发行版,可以省去hadoop, hive等繁琐的安装,部署。
下载地址:https://www.cloudera.com/downloads.html
2.Python环境: Anaconda 版本:Python 3.7
Anaconda是一个非常好用的Python环境,特别是安装包的方便,可以不用pip,几乎能想到的包都有。
因为使用的是linux版本的,在官网下载后是一个.sh文件
通过
$ sh Anacouda3-5.3.1-Linux-x86_64.sh
执行安装
3.通过pyhive连接hive需要的Python包:
3.1 pyhive
3.2 thrift
3.3 sasl
共需要三个包
安装完Anaconda后,在终端分别输入
$conda pyhive
$conda thrift
$conda sasl
下载这些包
4.连接Hive
使用jupyter notebook
from pyhive import hive
import pandas as pd
cnn=hive.Connection(host='localhost', port='10000', username='hive')
cursor=cnn.cursor()
cursor.execute("show databases")
data=pd.DataFrame(cursor.fetchall())
print(data.head())
这里为了显示方便,导入了pandas库,利用Dataframe去显示返回的数据,因为将数据导入到了pandas里面,所以也可以直接利用查询语句选出数据,导入到pandas进行分析。
注意!如果连接不成功可以在终端输入
$ sudo service hive-server2 start
打开hiveService2借口, pyhive是通过这个接口与hive通讯的