1、RJDBC对字符比较挑,没有配置好,则读不出内容,都出的空表,问题解决如下
加上这个?useUnicode=true&characterEncoding=UTF-8即可。
具体做法:
s1:下载驱动 mysql-connector-java-5.1.22.tar
s2:上传到etc目录,解压到新建的文件夹 /jdbc
tar -zxvf mysql-connector-java-5.1.22.tar
移动到jdbc目录
[root@elcndc2bdwd01t jdbc]# mv mysql-connector-java-5.1.22 jdbc
在R中运行以下代码即可
library(RJDBC)
drv<-JDBC("com.mysql.jdbc.Driver", "/etc/jdbc/mysql-connector-java-5.1.22-bin.jar",identifier.quote="`")
conn<-dbConnect(drv, "jdbc:mysql://10.37.xxx.xx:3306/soufang?useUnicode=true&characterEncoding=UTF-8", "root", "123456")
dbListTables(conn); #列出所有的数据表
LF <- dbGetQuery(conn, "SELECT * FROM houseproperty hp, housing h WHERE hp.housingId=h.housingId AND hp.city='廊坊'")
【报错及解决】
> tx1 <- dbGetQuery(conn, sqlTX); #152175个用户Error in .jcall(rp, "I", "fetch", stride, block) : java.lang.OutOfMemoryError: Java heap space
原因:java虚拟机的最大内存太小,解决办法,改为-Xmx4g
> options(java.parameters='-Xmx4g')