Я должен прочитать большой CSV-файл (5,4 ГБ с 7 м строк и 205 столбцов) в R. Я успешно прочитал его, используя data.table::fread()
. Но я хочу знать, возможно ли прочитать его, используя базовый read.csv()
?
Я пытался использовать только грубую силу, но моя 16 ГБ ОЗУ не может этого удержать. Затем я попытался использовать стратегию «разделяй и властвуй» (чанкинг), как показано ниже, но она все еще не работала. Как мне это сделать?
dt1 <- read.csv('./ss13hus.csv', header = FALSE, nrows = 721900, skip =1)
print(paste(1, 'th chunk completed'))
system.time(
for (i in (1:9)){
tmp = read.csv('./ss13hus.csv', header = FALSE, nrows = 721900, skip = i * 721900 + 1)
dt1 <- rbind(dt1, tmp)
print(paste(i + 1, 'th chunk completed'))
}
)
Кроме того, я хочу знать, как работает fread()
, который может считывать все данные одновременно и очень эффективно, независимо от времени или памяти?