У меня большой набор данных (около 13 ГБ без сжатия), и мне нужно загружать его несколько раз. Первая загрузка (и сохранение в другом формате) может быть очень медленной, но каждая последующая загрузка должна быть максимально быстрой. Какой самый быстрый способ и самый быстрый формат для загрузки набора данных?
Подозреваю, что оптимальный выбор - это что-то вроде
saveRDS(obj, file = 'bigdata.Rda', compress = FALSE)
obj <- loadRDS('bigdata.Rda)
Но это кажется медленнее, чем использование функции fread
в пакете data.table
. Этого не должно быть, потому что fread
конвертирует файл из CSV (хотя, по общему признанию, он сильно оптимизирован).
Вот некоторые тайминги для набора данных размером ~ 800 МБ:
> 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).