我正在尝试将R连接到Teradata以将数据直接导入R进行分析.但是,我收到的错误是:
Error in .jcall(rp, "I", "fetch", stride, block) :
java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)
我尝试通过执行以下操作来设置我的R选项以增加JVM的最大堆大小:
options(java.parameters = "-Xmx8g")
Run Code Online (Sandbox Code Playgroud)
我还尝试使用rJava函数初始化java参数.jinit:.jinit(parameters="-Xmx8g").但仍然失败了.
计算出的数据大小应约为3G(实际上小于3G).
有人可以帮我吗?任何建议表示赞赏.
tux*_*ong 27
在加载rJava或任何其他软件包之前,您需要确保分配额外的内存.首先擦除环境(通过rm(list = ls())),如果必须,重新启动R/Rstudio,并修改脚本开头的选项.
options(java.parameters = "-Xmx8000m")
drm*_*iod 10
我不知何故以不可重现的方式遇到了这个问题,部分解决了它,-Xmx8g但随机遇到了问题。
我现在使用不同的垃圾收集器找到了一个选项
options(java.parameters = c("-XX:+UseConcMarkSweepGC", "-Xmx8192m"))
library(xlsx)
Run Code Online (Sandbox Code Playgroud)
在脚本的开头和加载任何其他包之前,因为其他包可以自己加载一些 java 东西,并且必须在加载任何 Java 之前设置选项。
到此为止,问题没有再出现。
只是有时在长时间的会话中它仍然会发生。但在这种情况下,会话重启通常可以解决问题。
| 归档时间: |
|
| 查看次数: |
25272 次 |
| 最近记录: |