'Embedded nul in string' при импорте большого CSV (8 ГБ) с помощью fread ()
У меня есть большой файл CSV (8,1 ГБ), который я пытаюсь перебрать в R. Я создал CSV, используя csvkit Pythonin2csv
, преобразованный из файла .txt, но каким-то образом преобразование привело к появлению в файле нулевых символов. Теперь я получаю эту ошибку при импорте:
Error in fread("file.csv", nrows = 100) : embedded nul in string: 'ÿþr\0e\0c\0d\0_\0z\0i\0p\0c\0'
I я возможность импортировать небольшие куски просто отлично сread.csv
хотя, но это потому, что он позволяет кодировать UTF-16 черезfileEncoding
аргумент.
test <- read.csv("file.csv", nrows=100, fileEncoding="UTF-16LE")
Я не смею пытаться импортировать 8 ГБ файл сread.csv
, хоть.
Поэтому я попробовал предложенное решениеВот, в котором вы используетеsed s/\\0//g file.csv > file2.csv
вытащить нули. Команда выполнилась очень хорошо и заполнила новый 8-гигабайтный файл CSV, но я получил почти идентичную ошибку:
Error in fread("file2.csv", nrows = 100) : embedded nul in string: 'ÿþr\0e\0c\0d\0_\0z\0i\0p\0c\0,\0p\0o\0s\0t\0_\0z\0i
Итак, это не сработало. Я в тупике на этом этапе. Учитывая размер файла, я не могу использоватьread.csv
в целом, и я не уверен, как избавиться от нулей в оригинальном CSV. Я даже не уверен, как файл был закодирован как UTF-16. Любые предложения или советы будут с благодарностью на этом этапе.
Изменить: я на машине с Windows.