Я хотел бы вычислить очень большие файлы JSON (около 400 МБ каждый) в Scala.Библиотека JSON в Scala и распределение вычислений
Мой прецедент - пакетная обработка. В тот же момент я могу получить несколько очень больших файлов (до 20 ГБ, затем вырезать для обработки), и я действительно хочу быстро их обрабатывать как очередь (но это не тема этого сообщения!). Поэтому речь идет о распределенной архитектуре и проблемах производительности.
Мой формат файла JSON представляет собой массив объектов, каждый объект JSON содержит не менее 20 полей. Мой поток состоит из двух основных шагов. Первый - это отображение объекта JSON в объект Scala. И второй шаг - это некоторые преобразования, которые я делаю на объектах Scala.
Чтобы избежать загрузки всего файла в память, мне нужна библиотека синтаксического анализа, где я могу иметь инкрементный синтаксический анализ. Существует так много библиотек (Play-JSON, Jerkson, Lift-JSON, встроенный scala.util.parsing.json.JSON, Gson), и я не могу понять, какой из них взять, с требованием минимизировать зависимости.
- У вас есть идеи библиотеки, которую я могу использовать для сильного анализа большого объема с хорошими характеристиками?
Кроме того, я ищу способ параллельной обработки отображения файла JSON и преобразований, сделанных в полях (между несколькими узлами).
- Как вы думаете, я могу использовать Apache Spark для этого? Или существуют альтернативные способы ускорения/распространения преобразования/преобразования?
Благодарим за помощь.
С наилучшими пожеланиями, Томас
Возможно [использование таких инструментов, как Spark - огромный перебор) (http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html). –
См. Также http://stackoverflow.com/questions/8898353/parsing-a-large-30mb-json-file-with-net-liftweb-json-or-scala-util-parsing-jso –
Возможно, стоит отметить что 'scala.util.parsing.json.JSON' устарел; Я бы предпочел в основном потому, что он был первоначально реализован как демо для комбинаторов парсеров. –