Чтение CSV-файла размером 53 000 МБ

Данные называются: data.csv

Я попробовал read.csv('data.csv'), и появилось сообщение об ошибке, в котором говорилось, что файл слишком велик.

Я не совсем уверен, как использовать fread в этой ситуации, потому что, когда я пытался:

require(data.table)
DT <- fread("data.csv")

Это не сработало.

Есть идеи?

В итоге я попытался установить пакет "bigmemory", но он говорит

Warning in install.packages :
  package ‘bigmemory’ is not available (for R version 3.2.0)

1 ответ

Я хотел бы предложить вам также попробовать следующий код:

tab5rows <- read.table("datatable.txt", header = TRUE, nrows = 5)
classes <- sapply(tab5rows, class)
tabAll <- read.table("datatable.txt", header = TRUE, colClasses = classes)

Обсуждаемое здесь подробно может значительно улучшить скорость чтения больших файлов. Что еще более важно, первая строка позволит вам заглянуть внутрь файла. Если вы можете открыть его, пространство для маневра велико. Кроме того, может быть целесообразно прочитать файл в двоичном виде:

messy_file <- readLines(file("ProblematicData.csv", "rb"), encoding="UTF-8", skipNul=TRUE)

редактировать

Кроме того, я бы посоветовал вам взглянуть на это обсуждение, где подробно обсуждаются некоторые варианты чтения больших файлов.

Мой подход к проблеме:

  1. Попробуйте первый вариант с read.table альтернативно
  2. Пытаться fread от data.table альтернативно
  3. Читать как двоичный файл
Другие вопросы по тегам