R语言读取Hive数据表

R通过RJDBC包连接Hive

目前Hive集群主要在济阳,我们的权限是可以通过跳板机来访问 HiveServer, 将Hive 中的批量数据读入R环境,并进行后续的模型和算法运算。

1. 登录跳板机后需要首先在Linux下进行配置

从root权限切换到bzsys用户,才能够通过验证读取Hive。首先需要配置Hadoop的临时环境变量CLASSPATH路径

su bzsys

export 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=" 为需要的特殊认证Authentication

hiveconnection <- dbConnect(drv,"jdbc:hive2://hadoop-jy-backupserver:10000/default;principal=hive/[email protected]",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/[email protected]",user="*******", password="*******")   # *** 替换为相应用户名密码

# 从BAIDU_INDEX 表中查询记录的个数,存入DataFrame

count = 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")

时间: 2024-10-27 03:11:33

R语言读取Hive数据表的相关文章

R语言读取MySQL数据表

1.R中安装RODBC包 install.packages("RODBC") 2.在Windows系统下安装MySQL的ODBC驱动 注意区分32位和64位版本: http://dev.mysql.com/downloads/connector/odbc 3.ODBC的系统配置 在Windows操作系统下:控制面板->管理工具->数据源(ODBC)->双击->添加->选中mysql ODBC driver一项 填写:data source name 一项填

R语言读取文件数据

R语言读取文件数据 ??1.read.table()函数 2.其他函数的缺省 read.csv(file, header = TRUE, sep = ",", quote="\"", dec=".",fill = TRUE, ...)read.csv2(file, header = TRUE, sep = ";", quote="\"", dec=",",fill =

R语言读取大数据 data.table包 fread函数

> setwd("D:\\R_Tardy") > library(data.table) //  data.table 1.9.6   // For help type ?data.table or  // https://github.com/Rdatatable/data.table/wikiThe fastest way to learn (by data.table authors):  //  https://www.datacamp.com/courses/da

R语言读取csv中的内容

1992年,R语言诞生.R语言是PC和Linux时代的产物,R语言和贝尔实验室开发的S语言类似,R支持一系列分析技术,包括统计分析.预测建模.数据可视化.在CRAN上可以找到众多的扩张包. R软件 的首选界面是命令行界面,通过编写脚本来调用相应的功能函数.同时,它也支持图形界面. R语言可以用来做数据挖掘,下面我们就用它来读取birth2.csv 中的内容. //birth2.csv ALGERIA ,36.4,14.6 CONGO ,37.3,8 EGYPT ,42.1,15.3 GHANA

R语言笔记之数据篇

R语言杂七杂八 与R语言有关的应用工具 探索性数据分析 统计推断 回归分析 机器学习-分类问题 R与Rstudio的获取与安装 包package一种扩展R基本功能的机制集成了众多函数 获取包 导入包libraryname 获取帮助 R语言特点 R语言语法基础之数据篇 R语言中的数据 R语言支持的数据类型 基本数据结构 一维数据类型 向量 vocter 1创建 2提取子集 因子 factor 1创建 2提取子集 二维数据类型 矩阵 matrix 1生成矩阵 1matrix方法 2 修改dim属性来

[译]用R语言做挖掘数据《二》

数据探索 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: 1. LX终端(LXTerminal): Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令2. GVim:非常好用的编辑器,最简单的用法可以参考课程[Vim编辑器](http://www.shiyanlou.com/courses/2)3. R:在命令行输入‘R’  进入R语言

转载:R语言Data Frame数据框常用操作

Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的. Data Frame每一列有列名,每一行也可以指定行名.如果不指定行名,那么就是从1开始自增的Sequence来标识每一行. 初始化 使用data.frame函数就可以初始化一个Data Frame.比如我们要初始化一个student的Data Frame其中包含ID和Name还有Gender以及Birthdate,那么代码为: studen

R语言Data Frame数据框常用操作

Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的. Data Frame每一列有列名,每一行也可以指定行名.如果不指定行名,那么就是从1开始自增的Sequence来标识每一行. 初始化 使用data.frame函数就可以初始化一个Data Frame.比如我们要初始化一个student的Data Frame其中包含ID和Name还有Gender以及Birthdate,那么代码为: studen

[译]用R语言做挖掘数据《七》

时间序列与数据挖掘 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到: 1. LX终端(LXTerminal): Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令2. GVim:非常好用的编辑器,最简单的用法可以参考课程Vim编辑器3. R:在命令行输入‘R’进入交互式环境,下面的代码都是在交互式环境运行4. 数据:在命令行终端输入以下命令: