【问题标题】:OutOfMemoryError (Java) : Java heap spaceOutOfMemoryError (Java):Java 堆空间
【发布时间】:2016-11-26 12:44:08
【问题描述】:

我正在尝试在 Excel 表的末尾再添加 10 行(目前为 27k 行)

options(java.parameters = "-Xmx4g" ) ; 
library(XLConnect) ;
writeWorksheetToFile("H:/R/myfile.xlsx",DataTable,sheet="Sheet1",startRow=row1,startCol=1,header=FALSE,rownames=FALSE) 

几秒钟后我收到错误消息

OutOfMemoryError (Java):Java 堆空间

我该如何解决这个问题? options(java.parameters = "-Xmx4g" ) 不应该工作吗?

【问题讨论】:

  • Shouldn't options ... work? ...如果您尝试执行的操作超出可用堆空间,则不会。您使用的是什么版本的 Java(例如 64 位 Java 8)?
  • 使用options(java.parameters = "-Xmx512m") 不起作用?对于字节数较弱的数据,应该足够了。如果超出堆空间,则可能不考虑它的值。尝试使用 jvisualvm 或类似工具在运行时检查内存是否适当配置
  • 尝试使用java.parameters = "-Xmx8g"
  • 为什么不将Java调用R脚本作为子进程?
  • 嗨蒂姆·比格莱森,我有版本 8。

标签: java r excel out-of-memory xlconnect


【解决方案1】:

尝试使用 openxlsx 包。我遇到了 XLConnect 和 Java 的问题。

【讨论】:

  • 我很喜欢 XLconnect,但我放弃了,因为总是会出现非确定性错误。现在执行m=matrix(c(1,2,3,4,5,6,7,8,9),3); writeWorksheetToFile("H:/R/m.xlsx",m,sheet="Sheet1",rownames=FALSE) ; 给了我Error: ClassCastException (Java): org.apache.xmlbeans.impl.values.XmlComplexContentImpl cannot be cast to org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr 当然,如果我在R 的另一个实例上运行相同的代码,它可以完美地工作。
  • 嗨 @DataMunger 我正在尝试使用 openxlsx,但收到错误“在 Windows 上尝试 installr::install.rtools()”。如果我尝试这样做,我会收到一个更加神秘的“loadNamespace(name) 中的错误:没有名为‘installr’的包”,并且我无法在包列表中找到这个 rtools。我应该怎么做才能使用 openslsx 执行任何活动?
  • 您可以在 setup_rtools {devtools} R 文档中找到 Rtools 找到 rtools。描述 要在 Windows 上构建二进制包,Rtools(位于cran.r-project.org/bin/windows/Rtools)需要在路径上。默认安装过程不会添加它,所以这个脚本会找到它(先在路径上查找,然后在注册表中查找)。它还会检查 rtools 的版本是否与 R 的版本匹配。用法 setup_rtools(cache = TRUE, debug = FALSE) 这应该允许您安装 Rtools,然后您应该可以使用 openxlsx。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-11-17
  • 2016-05-25
  • 2012-03-18
相关资源
最近更新 更多