gpt4 book ai didi

RJDBC(dbGetQuery) - 超出 GC 开销限制

转载 作者:行者123 更新时间:2023-12-03 14:50:20 26 4
gpt4 key购买 nike

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

dbGetQuery(conn,"SQL..")

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

Error in .jcall(rp, "I", "fetch", stride, block) :
java.lang.OutOfMemoryError: GC overhead limit exceeded



谢谢!
R007

最佳答案

正如本文所提到的,在加载库之前将 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

# Do this first    
options(java.parameters = "-Xmx4g")

# Then load your libraries
library(XLConnect)
library(RJDBC)
接下来,您可以使用 XLConnect 包根据需要随时释放 Java 内存。
# Free up java memory
XLConnect::xlcFreeMemory()
如果您像我一样运行一个巨大的循环,您可能希望在重新进入并再次运行之前将其插入循环中以释放内存。
当然,在运行代码之前安装包:
# Install XLConnect
install.packages("XLConnect")
将这两件事放在一起可能足以解决您的问题。
有关此主题的进一步阅读可在此处找到:
"Out of Memory Error (Java)" when using R and XLConnect package

关于RJDBC(dbGetQuery) - 超出 GC 开销限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40481100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com