保存/加载 data.table 的最快方法

Sev*_*eux 5 r data.table

我想做的实际上是使用最快的可用方法来存储data.tables 以便进一步处理。

大致如下:

  1. 从 CSV/RDS 读取原始数据。
  2. 将其转换为data.table.
  3. 将其保存为针对重新读取而优化的格式(RDS 似乎不适用于data.table,是这样吗?还有其他二进制选项吗?)
  4. 继续处理步骤 #3 中的文件,一遍data.table又一遍地直接读取它,进行切片、分组、绘图……

步骤#3 的最佳选择是什么?

Sev*_*eux 2

好的,这是我正在使用的特定数据集的一些测量结果。它最初是在RDS中,读取它需要60多秒。

之后,DT 被保存为内部 XDR 以及 SQLite 数据库,两者均未压缩。

  1. save()/load() 对最快,加载 11.7-11.8 秒

  2. SQLite (dbReadTable) 非常接近,为 12.0-12.1 秒。DB 的文件大小大约小 30%,所以我可以想象 SQLite 会比 save()/load() 更快的情况。

现在 save()/load() 适合我,它也保留了类