read.xlsx需要很长时间和大量内存

时间:2014-07-28 18:51:04

标签: r macos memory rjava r-xlsx

我正在尝试将.xlsx文件加载到具有一张纸的R中,大小约为31 MB。

我运行以下

options( java.parameters = "-Xmx6g" )
require(xlsx)
yt = read.xlsx("big_spreadsheet.xlsx",1)

我一无所获。我的系统监控程序显示分配的内存慢慢填满,然后保持满。我没有让它运行几个小时,但十分钟就足够了,特别是当我刚刚加载到Numbers(我在小牛队)并在那段时间保存为CSV时。

是的,我有超过6 GB的内存。 2 GB似乎不够,并产生错误:

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  java.lang.OutOfMemoryError: Java heap space
但是,我确实错误地让rJava包安装了自己的Java版本。事后我下载了JDK 8,但我不知道如何检查是否正在使用它。

那么为什么需要6 GB的RAM才能(无法)加载31 MB的文件?我能以某种方式解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我从来没有这个工作。我最近一直在使用readxl包从Excel电子表格中读取,它没有Java依赖性,似乎工作正常。

答案 1 :(得分:1)

是的,使用 readxl 包,因为xlsx包需要花费大量时间来加载java,并且在读取大小文件(即使是2mb)时它会返回错误的可能性更多

使用起来非常简单

   read_excel("path")