连接原理:R语言和Python连接,R中读取的数据可以传递到python中进行处理,同理python中的结果可以传递到R语言中进行,二者满足双向传递。而Python连接hive的方法较多且简单,因此采用python获取hive数据库中的数据,将数据再传到R语言中,即可进行分析。在这点上,我个人觉得python的接口优于R语言,用python进行数据分析可能优于R语言。
1.Python获取hive的数据
看到下面的程序代码是Python连接hive数据库的代码,比较简单。
(1)前提准备
yum -y install gcc gcc-c++ cyrus-sasl-devel cyrus-sasl-plain
pip install ipython six bit_array thriftpy thrift_sasl==0.2.1 sasl impyla
(2)程序代码
from impala.dbapi import connect
conn = connect(host="192.168.14.101", port=10000, database="hive01", auth_mechanism="PLAIN")
cur = conn.cursor()
cur.execute("select * from hive01.data02")
data=cur.fetchone()
print(data)
将以上python写好的代码,保存为.py文件即可,命名为data_hive_python.py
2.R语言获取Python中读到的数据
library(reticulate)
source_python("data_hive_python.py")
py$data ##查看数据