什么是将大型数据集快速加载到R中的最快方法和最快格式?
什么是将大型数据集快速加载到R中的最快方法和最快格式?
这个问题在这里已经有答案:
我有一个大型数据集(未压缩约13GB),我需要反复加载它。第一次加载(并保存到不同的格式)可能非常慢,但之后每次加载都应尽可能快。从哪个格式和方式加载数据集最快?
我认为最优选择类似于
saveRDS(obj, file = 'bigdata.Rda', compress = FALSE) obj <- loadRDS('bigdata.Rda)
但这似乎比使用data.table
包中的fread
函数慢。这不应该是这样,因为fread
从CSV文件转换(尽管它显然已高度优化)。
对于一个大约800MB的数据集,一些时间如下:
> system.time(tmp <- fread("data.csv")) Read 6135344 rows and 22 (of 22) columns from 0.795 GB file in 00:00:43 user system elapsed 36.94 0.44 42.71 saveRDS(tmp, file = 'tmp.Rda')) > system.time(tmp <- readRDS('tmp.Rda')) user system elapsed 69.96 2.02 84.04
之前的问题
这个问题是相关的,但并不反映当前的R状态,例如,一个答案建议从二进制格式读取将始终比文本格式快。建议使用SQL对我来说也没有帮助,因为需要整个数据集,而不仅仅是其子集。
还有相关问题关于一次最快的加载数据的方式(例如:1)。
admin 更改状态以发布 2023年5月20日