Как разобрать большие файлы с помощью flatpack
Мне нужно разобрать файлы, которые могут быть довольно большими, возможно, сотни мегабайт и миллионы строк. Я пытался сделать это с помощью FlatPack. Я думаю, что способ сделать это будет использовать буферизованные парсеры и новые методы потока. Но, несмотря на то, что dataset.next() возвращает true для правильного количества записей, Optional, возвращаемый функцией dataset.getRecord(), никогда не содержит значения.
Я посмотрел на этот пример / тест, но он только подсчитывает количество записей и фактически ничего не делает с контентом. Пример / тест
2 ответа
Объяснения для DefaultParserFactory и BuffReaderParseFactory не совсем полезны. Обе библиотеки сказали вернуть PZParser
(от newDelimitedParser
) но только один из них возвращает фактическое значение из записи. На основании примеров, которые я видел, я думаю, BuffReaderParseFactory
только для проверки производительности (следовательно, должно быть быстрее) и DefaultParserFactory
с другой стороны, содержит все записи.
Вы можете использовать класс BuffReaderParseFactory вместо DefaultParserFactory.
Он будет читать одну запись из входного файла только при вызове "next()".