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')