R语言读取Hive数据表
R通过RJDBC包连接Hive
目前Hive集群是可以通过跳板机来访问 HiveServer, 将Hive 中的批量数据读入R环境,并进行后续的模型和算法运算。
1. 登录跳板机后需要首先在Linux下进行配置
从root权限切换到bzsys用户,才能够通过验证读取Hive。首先需要配置Hadoop的临时环境变量CLASSPATH路径
su bzsysexport CLASSPATH=$CLASSPATH:/etc/hadoop/conf |
2. 下载并安装RJDBC包
Linux下直接运行R的install 函数通常不成功,建议下载预编译的包通过命令行安装,如下载文件 RJDBC_0.2-6.tar.gz (http://www.rforge.net/RJDBC/)
切换到下载包所在的文件夹下,如 /etc/usr/R-patched/packages (替换为自己的目录),在终端运行R的命令行,完成安装。
R CMD INSTALL RJDBC_0.2-6.tar.gz |
3. 进入R环境
library(RJDBC) # 载入RJDBC包# 设置R连接时类的路径 CLASSPATH,注意一定要引hive/hadoop这三个路径下的所有包才可以通过认证cp = c(list.files("/usr/lib/hive/lib", pattern = "[.]jar", full.names=TRUE, recursive=TRUE),list.files("/usr/lib/hadoop", pattern = "[.]jar", full.names=TRUE, recursive=TRUE), list.files("/etc/hadoop/conf", full.names=TRUE, recursive=TRUE),recursive=TRUE)# 新建RJDBC的 Driver drv <- JDBC(driverClass = "org.apache.hive.jdbc.HiveDriver", classPath = cp)# 建立连接Connection# 常见错误: 注意路径是jdbc:hive2:而不是jdbc:hive:, 因为新版Hive启用了 HiveServer2,替代了之前的HiveServer变量# "hadoop-jy-backupserver:10000" 为济阳集群的URL和默认端口PORT 10000, "principal=" 为需要的特殊认证Authenticationhiveconnection <- dbConnect(drv,"jdbc:hive2://hadoop-jy-backupserver:10000/default;principal=hive/hadoop-jy-backupserver@HADOOP.QIYI.COM",user="*******", password="*******") # *** 替换为相应用户名和密码 |
4. R操作 Hive数据表范例
library(RJDBC)cp = c(list.files("/usr/lib/hive/lib", pattern = "[.]jar", full.names=TRUE, recursive=TRUE),list.files("/usr/lib/hadoop", pattern = "[.]jar", full.names=TRUE, recursive=TRUE), list.files("/etc/hadoop/conf", full.names=TRUE, recursive=TRUE),recursive=TRUE)drv = JDBC(driverClass = "org.apache.hive.jdbc.HiveDriver", classPath = cp)hiveconnection = dbConnect(drv,"jdbc:hive2://hadoop-jy-backupserver:10000/default;principal=hive/hadoop-jy-backupserver@HADOOP.QIYI.COM",user="*******", password="*******") # *** 替换为相应用户名密码# 从BAIDU_INDEX 表中查询记录的个数,存入DataFramecount = dbGetQuery(hiveconnection,"SELECT count(*) FROM cpr.baidu_index") # 开始执行MapReduce任务 # 非查询Query的语句,如创建表CREATE, dbSendUpdate 函数执行所有非查询Query的语句sqlCreateTbl = "CREATE TABLE IF NOT EXISTS cpr.person_correlation_graph_temp(rownames STRING,ibao_person_id_x STRING, ibao_person_id_y STRING, cor_index DOUBLE,start_date STRING,end_date STRING)"result=dbSendUpdate(hiveconnection,sqlCreateTbl) # 将数据写入Hive数据库dfToLoad = data.frame(rownames=c('1','2'),ibao_person_id_x=c('盗墓笔记','盗墓笔记'),ibao_person_id_y=c('李易峰','杨洋'),cor_index=c(0.8900,0.5100))dbWriteTable(hiveconnection, "cpr.person_correlation_graph", dfToLoad, overwrite=TRUE) # R中执行其他Hive SQL的函数dbListTables(hiveconnection, "%qiyu%")df = dbReadTable(hiveConn, "iris") |
R语言读取Hive数据表的更多相关文章
- R语言读取MySQL数据表
1.R中安装RODBC包 install.packages("RODBC") 2.在Windows系统下安装MySQL的ODBC驱动 注意区分32位和64位版本: http://d ...
- R语言读取JSON数据
- R语言读取XML数据
- R语言分析朝阳医院数据
R语言分析朝阳医院数据 本次实践通过分析朝阳医院2016年销售数据,得出“月均消费次数”.“月均消费金额”.“客单价”.“消费趋势”等结果,并据此作出可视化图形. 一.读取数据: library(op ...
- [译]用R语言做挖掘数据《二》
数据探索 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: ...
- R语言实现金融数据的时间序列分析及建模
R语言实现金融数据的时间序列分析及建模 一 移动平均 移动平均能消除数据中的季节变动和不规则变动.若序列中存在周期变动,则通常以周期为移动平均项数.移动平均法可以通过数据显示出数据长期趋势的变动 ...
- R语言处理Web数据
R语言处理Web数据 许多网站提供的数据,以供其用户的消费.例如,世界卫生组织(WHO)提供的CSV,TXT和XML文件的形式的健康和医疗信息报告.基于R程序,我们可以通过编程提取这些网站的具体数据. ...
- 读取hive的表结构,生成带comment的视图建表语句
### 读取hive的表结构,生成带comment的视图建表语句 # 读取配置文件中的表并进行遍历 grep -v '^#' tablesFile|while read tableName do st ...
- R语言读取文件
1.R语言读取文件,文件类型为.txt 直接使用read.table()即可,若不知道当前的工作目录,可以使用函数getwd()来查看 2.R语言读取文件,文件类型为.xlsx 方法一:可以把excl ...
随机推荐
- Applese走方格-dfs
链接:https://ac.nowcoder.com/acm/contest/330/B来源:牛客网 题目描述 精通程序设计的 Applese 又写了一个游戏. 在这个游戏中,它位于一个 n 行 m ...
- js jq 实现鼠标经过div背景以进度条方式 变宽,鼠标离开变小,同时文字颜色和原来不一样
<!DOCTYPE html> <html> <head> <title></title> <script typet="t ...
- GPS卫星定位防盗系统机芯
GPS卫星定位防盗系统机芯,一般安装在驾驶室的操作台内,包括GPS模块,安装时需要先把车门打开,并把两边的车门拆卸下来,才能拆卸驾驶仪表台,再按说明书安装GPS定位防盗机芯,同时置于4A/12V免维护 ...
- 对于“2017面向对象程序设计(Java)第就十周学习总结”存在问题的反馈
1.“学生们普遍反映对泛型相关知识点的理解有一些难度,而且对泛型有关程序的编写有些困难.希望老师再次讲解.同学们普遍反映第四.第五个实验较难,大部分同学不能独立完成实验,希望老师能在课堂上详细解答.根 ...
- pandas 常用清洗数据(一)
数据源获取: https://www.kaggle.com/datasets 1. Look at the some basic stats for the ‘imdb_score’ column: ...
- spring boot IDEA 开发微服务(二)
https://www.cnblogs.com/spaceud/p/8097934.html 参考以上微博,自己实际操作步骤如下: 1~开发准备 JDK:1.8 Spring Boot:2.1.0 S ...
- HibernateDaoSupport类的使用(转)
看到一篇很好描述HibernateDaoSupport类使用的例子,特此在这和大家分享一下 核心提示:1. 继承了HibernateDaoSupport类的类获取session时,已不可用Sessio ...
- Selenium 定位元素原理,基本API,显示等待,隐式等待,重试机制等等
Selenium 如何定位动态元素: 测试的时候会遇到元素每次变动的情况,例如: <div id="btn-attention_2030295">...</di ...
- 162. Find Peak Element (Array; Divide-and-Conquer)
A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...
- this.class.getClassLoader().getResourceAsStream与this.class.getResourceAsStream 文件地址获取
本文部分转自:http://xixinfei.iteye.com/blog/1256291 this.getClass().getClassLoader().getResource("tem ...