R RJDBC java.lang.OutOfMemoryError

Posted

技术标签:

【中文标题】R RJDBC java.lang.OutOfMemoryError【英文标题】: 【发布时间】:2014-09-01 17:13:03 【问题描述】:

运行 RJDBC 0.2-4 的 dbGetQuery 时出现以下错误:

Error in .jcall(rp, "I", "fetch", stride) :    
  java.lang.OutOfMemoryError: Java heap space

以下是我的代码:

Sys.setenv(JAVA_HOME='C:/Program Files (x86)/Java/jdk1.7.0_25')
options(java.parameters='-Xmx1g')
library(rJava)
library(rjson)
library(RJDBC)

# Output Java version
.jinit()
print(.jcall("java/lang/System", "S", "getProperty", "java.version"))

jdbcDriver <<- JDBC(driverClass="oracle.jdbc.OracleDriver", classPath="C:/lib/dashboard_lib/ojdbc6.jar")
jdbcConnection <<- dbConnect(jdbcDriver, "...", "...", "...")
dataset <<- dbGetQuery(jdbcConnection, "select * from OPR_DATA.MV_REG_CTRY_MS_QUARTER_AMT")

谁能帮帮我,在此先感谢

【问题讨论】:

您是否厌倦了将内存增加到 4g 而不是 1g。我的意思是将java参数的选项设置为-Xmx4g而不是-Xmx1g 【参考方案1】:

评论以防其他人遇到此线程并出现相同的错误。更新 RJDBC (install.packages("RJDBC")) 对我有用。

【讨论】:

【参考方案2】:

使用它对我来说会失败:

options(java.parameters = "-Xmx8048m")
library("RJDBC")

然而,

options(java.parameters = "-Xmx8g")
library("RJDBC")

工作。

【讨论】:

【参考方案3】:

您可以如下增加内存并重新启动您的 Rstudio,它对我有用。

memory.limit(size=10000000000024)

【讨论】:

【参考方案4】:

只需在加载 RJDBC 包之前将 java.parameters 更改为 8GB:

options(java.parameters = "-Xmx8048m")
library("RJDBC")

【讨论】:

以上是关于R RJDBC java.lang.OutOfMemoryError的主要内容,如果未能解决你的问题,请参考以下文章

R RJDBC java.lang.OutOfMemoryError

使用 Rstudio windows 中的 R rJDBC 包连接到 hive(启用了 kerbero)

RJDBC dbGetQuery() 错误创建外部表 HIVE

java虚拟机3.运行时内存异常

将 R 与 Vertica 数据库连接

在 R 中更快地读取 SQL 表