Как читать большой json?

Я получаю json-файлы с данными для анализа в R, для которых я использую RJSONIO-package:

library(RJSONIO)
filename <- "Indata.json"
jFile <- fromJSON(filename)

Когда размер json-файлов превышает 300 МБ (без сжатия), мой компьютер начинает использовать память подкачки и часами продолжает синтаксический анализ (из JSON). Для разбора файла размером 200 МБ требуется всего около одной минуты.

Я использую R 2.14 (64-разрядную версию) на 64-разрядной версии Ubuntu с 16 ГБ ОЗУ, поэтому меня удивляет, что подкачка требуется уже при примерно 300 МБ json.

Что я могу сделать, чтобы читать большие json-файлы? Что-то в настройках памяти что-то портит? Я перезапустил R и запустил только три строки выше. Json-файл содержит 2-3 столбца с короткими строками и 10-20 столбцов с номерами от 0 до 1000000. Т.е. именно количество строк делает большой размер (более миллиона строк в проанализированных данных).


Обновление: Из комментариев я узнал, что rjson больше работает на C, поэтому я попробовал. Для файла размером 300 МБ, который с RJSONIO (по данным Ubuntu System Monitor) достиг 100% использования памяти (с базового уровня 6%) и перешел в свопинг, потребовалось только 60% памяти с пакетом rjson, а анализ был выполнен в разумное время (минуты).

15
задан Lightness Races with Monica 21 November 2011 в 22:36
поделиться