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

标签 r macos memory rjava r-xlsx

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

我运行以下内容

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 文件(无法加载)?我能以某种方式解决这个问题吗?

最佳答案

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

关于read.xlsx 需要很长的时间和大量的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25002212/

相关文章:

r - 将季度数据更改为每小时数据

macos - 使 session 设置保存功能与 ultisnips 配合良好

macos - OSX 10.5.8 上的 Qt : "The root CA certificate is not trusted for this purpose"

javascript - JavaScript Array 的内存管理

字符 * 字符串 = "Hello";内存地址空间

perl - Perl 进程之间共享只读内存

r - 基于其他列中的字符串的虚拟变量列

r - R ranger 包中的预测概率

r - data.table:使用函数逐行转换列的子集

objective-c - 我如何 "freeze"与其他窗口进行所有交互?