RJDBC包是R语言中用来在DBI接口基础上实现的JDBC接口,它使得我们可以使用JDBC接口方式来读写数据库。它需要预先设置好Java环境,并找到对应数据库的JDBC
Driver。在本例中我们使用了MySQL数据,使用的Driver为mysql-connector-java-5.1.22-bin.jar。本例子中将这个Driver文件放在的R工作目录的jdbc文件夹中。
在使用前先安装RJDBC包,如果已经安装了可以跳过该步。
install.packages(“RJDBC”,dep=TRUE)
下面开始使用RJDBC读写数据库。
# 载入RJDBC包,并建立connect。
library(RJDBC)
drv
“jdbc/mysql-connector-java-5.1.22-bin.jar”,
identifier.quote=”`”)
conn
“bidm”)
# 将iris数据集写到数据库中。创建同名表
data(iris)
dbWriteTable(conn, “iris”, iris, overwrite=TRUE)
# 看看是否写入成功。iris数据集共有150条记录
dbGetQuery(conn, “select count(*) from iris”)
下面来试试从数据库里面读取数据集。
# 将整个iris表的数据读到变量diris中
diris
# 也可以使用SQL语句读取数据集
setosa
“setosa”)
另一个例子:
通过RJDBC连接hive
## 载入RJDBC,如果没安装请使用install.packages('RJDBC')进行安装require(RJDBC)##
设置jdbc驱动drv
pattern = "jar$", full.names=TRUE,
recursive=TRUE))##
通过驱动连接hive所在URLconn
'192.168.1.57', '10000'))##
执行一条查询语句,验证已连接成功dbGetQuery(conn,'select
count(*) from pokes')_c01
20请注意这里使用的jdbc:hive2,如果jdbc:hive则对应的org.apache.hadoop.hive.jdbc.HiveDriver