fread内存使用量比文件大得多

时间:2016-01-10 18:39:37

标签: r data.table

我在一台512GB的ram服务器上。我有一个84gig CSV(我知道很重)。我只读了31列79,其中排除的都是浮点数/小数。

在比较了许多方法之后,似乎是我想要的最高性能方式来运行文件。文件大小为84gb,但观看“顶部”的过程使用160 gig的内存(RES),即使最终data.table的大小约为20gig。

我知道fread预分配内存,这就是为什么它如此之快。只是想知道 - 这是正常的,有没有办法抑制内存消耗?

编辑:好像,如果我只是要求fread读取10000行(300MM),fread仍会预先分配84 gig的内存。

2 个答案:

答案 0 :(得分:3)

R FAQ 7.42。如果要最小化在服务器上使用的资源,请使用fread一次读取csv,然后使用savesaveRDS保存生成的对象。然后在需要数据时读取该二进制文件。

或者您可以使用cutawksed等命令行工具来仅选择所需的列并将输出写入另一个文件。然后,您可以在该较小的文件上使用fread

答案 1 :(得分:0)