Вопрос относительно apache.avro.tool

 
 
 
Сообщения:7
Доброго времени суток.

Стоит задача парсить Json-объекты с помощью нативных библиотек avro.

На данный момент алгоритм работы следующий:
1) Беру схему объетка Json + Json-файл с данными, провожу конвертацию в бинарный файл с помощью класса org.apache.avro.tool.DataFileWriteTool, который на выходе записывает данные в бинарный файл binary.avro
2) Далее, с помощью ранее с генерированных Java-классов обрабатываю по объектно данные из бинарного файла binary.avro, с помощью
org.apache.avro.file.FileReader = DataFileReader.openReader(binary.avro, new SpecificDatumReader<хххххх>(хххххх.class));

Вопрос, можно ли как то процесс конвертации данных ускорить + опустить этап записи в бинарный файл, а сразу передавать данные в FileReader или какой-другой класс?
Объем файла данных на входе составляет около ~2.5-3.5 Гб., бинарный файл при такой размере входящего файла выходит около 600 Мб.

Буду очень благодарен за помощь.
Заранее спасибо.
 
 
Сообщения:284
Может так?
public static void main(String[] args) throws IOException {
   Schema schema = new Schema.Parser().parse(new File("user.avsc"));

   SpecificDatumReader<User> datumReader = new SpecificDatumReader<>(User.class);

   DecoderFactory decoderFactory = new DecoderFactory();
   JsonDecoder jsonDecoder = decoderFactory.jsonDecoder(schema, new FileInputStream("users.json"));
   User user = new User();
   while (true) {
      try {
         user = datumReader.read(user, jsonDecoder);
         System.out.println(user);
      } catch (EOFException ex) {
         break;
      }
   }
}

P/S: класс User и схема к нему взяты отсюда.
 
 
Сообщения:7
vps, спасибо большое.
Такой вариант подходит.
А можно уточнить, может есть какие ссылки на сайты с примерами, а то на официальном apache.avro приведен только пример с авро форматов, а всё остальное очень скудно описано, точнее даже не описано и вовсе.

Буду очень благодарен.
 
 
Сообщения:284
RandomAccess96:
А можно уточнить, может есть какие ссылки на сайты с примерами

Тоже ничего не нашёл. Смотрел исходники на гитхабе.
 
 
Сообщения:7
Понял.
Спасибо за помощь.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет