首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >超过RJDBC(dbGetQuery) - GC开销限制

超过RJDBC(dbGetQuery) - GC开销限制
EN

Stack Overflow用户
提问于 2016-11-08 07:19:34
回答 1查看 1.6K关注 0票数 7

我使用包RJDBC和函数dbGetQuery来获得一个SQL查询的输出。该代码适用于行数不多的SQL语句,但哪些语句行> 1.000.000,则会出现错误。是否有处理内存的参数?

代码语言:javascript
复制
dbGetQuery(conn,"SQL..")

然后我得到以下错误消息:

.jcall中的错误(rp,"I","fetch",stride,block): java.lang.OutOfMemoryError:超过GC开销限制

谢谢!R007

EN

回答 1

Stack Overflow用户

发布于 2020-09-30 16:04:59

正如本文所提到的,在加载库之前将java参数参数放在代码的顶部应该会从默认的512 MB增加堆大小。如果您已经加载了您的包,您将需要重新启动R并重新运行要应用的更改的代码。

https://www.ibm.com/support/pages/executing-code-r-connecting-impala-jdbc-rjdbc-results-error-jcallrp-i-fetch-stride-javalangoutofmemoryerror-java-heap-space-rjdbcdbgetquery-gc-overhead-limit-exceeded

代码语言:javascript
复制
# Do this first    
options(java.parameters = "-Xmx4g")

# Then load your libraries
library(XLConnect)
library(RJDBC)

接下来,您可以根据需要经常使用XLConnect包来释放Java内存。

代码语言:javascript
复制
# Free up java memory
XLConnect::xlcFreeMemory()

如果你像我一样运行一个很大的循环,你可能需要在重新输入和运行之前把它插入到循环中来释放内存。

当然,在运行代码之前安装包:

代码语言:javascript
复制
# Install XLConnect
install.packages("XLConnect")

这两件事加在一起可能就足以解决你的问题了。

有关此主题的进一步阅读可在此处找到:"Out of Memory Error (Java)" when using R and XLConnect package

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40481100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档