rxImport не работает с большим набором данных

Последние два дня я безуспешно пытался преобразовать большой CSV (9 гигабайт) в формат XDF с помощью функции RxImport.

Кажется, что процесс начинается хорошо, когда R-сервер читает фрагмент данных за фрагментом, но через несколько минут он замедляется до сканирования, а затем полностью завершается сбоем примерно через 6 часов, когда Windows останавливает сервер, говоря, что ему не хватает ОЗУ.

Код, который я использую, выглядит следующим образом:

pd_in_file <- RxTextData("cca_pd_entity.csv", delimiter = ",") #file to import
pd_out_file <- file.path("cca_pd_entity.xdf") #desired output file
pd_data <- rxImport(inData = pd_in_file, outFile = pd_out_file, 
stringsAsFactors = TRUE, overwrite = TRUE)

Я использую Microsoft R Server версии 9.0.1. на машине Windows 7 с 16 гигабайтами оперативной памяти.

Спасибо


person Serban Dragne    schedule 02.06.2017    source источник
comment
Посмотрите, поможет ли установка аргумента colInfo   -  person Hong Ooi    schedule 03.06.2017
comment
Спасибо за предложение, я попробую. У меня около 300 столбцов данных, поэтому правильно ли предположить, что я могу импортировать подмножество данных и использовать команду rxGetVarInfo для извлечения информации о столбцах и передачи ее команде rxImport вместо того, чтобы вручную указывать каждый столбец отдельно?   -  person Serban Dragne    schedule 05.06.2017
comment
Это сработало!!! Arg, это так здорово :D Спасибо, спасибо, спасибо   -  person Serban Dragne    schedule 05.06.2017


Ответы (1)


Это было решено с помощью рекомендации Hong Ooi установить colInfo в rxTextData. Я не уверен, почему это имело такое большое значение, но он преобразовал весь набор данных объемом 9 гигабайт менее чем за 2 минуты, когда он полностью не смог импортировать несколько часов назад.

person Serban Dragne    schedule 05.06.2017
comment
что вы установили для аргумента colInfo? - person gibbz00; 08.08.2017
comment
@ gibbz00 - я импортировал образец данных из CSV, а затем присвоил ColumnInfo ‹- rxGetVarInfo (sample_data). Затем при импорте в rxDataStep (или rxImport, если хотите) я передал colInfo = ColumnInfo. Это сработало очень хорошо. - person Serban Dragne; 09.08.2017