1

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

我运行以下

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

我什么也得不到。我的系统监视器程序显示分配的内存慢慢填满,然后一直保持满。我没有让它运行几个小时,但十分钟应该足够了,尤其是当我可以刚刚加载到 Numbers 中(我在 Mavericks 上)并在那段时间将其保存为 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 的文件呢?我能以某种方式解决这个问题吗?

4

2 回答 2

2

我从来没有让这个工作。我最近一直在使用这个readxl包来读取 Excel 电子表格,它没有 Java 依赖,而且似乎工作得很好。

于 2017-07-27T12:42:15.103 回答
2

是的,使用readxl包,因为 xlsx 包需要 java 需要很长时间才能加载,而且它更有可能在读取仅大小的文件时返回错误(即使是 2mb)

它的使用非常简单,只需编写

   read_excel("path")
于 2017-08-03T05:33:03.670 回答