Есть ли способ создать схему Avro из хэш-карты значений? - PullRequest
0 голосов
/ 17 февраля 2020

Мы помещаем все наши точки данных для одной строки в хэш-карту. Мы не хотим использовать pojo, потому что значения каждый раз меняются. Например, мы можем получить «место» на некоторых записях, и мы можем получить «родной город» на других. На самом деле у нас есть тысячи разных имен столбцов на выбор. Наш код выглядит следующим образом:

Map<String, Object> aMap = new HashMap<>();
aMap.put("id", Integer.valueOf(1));
aMap.put("age", Integer.valueOf(45));
aMap.put("name", "mark");
aMap.put("place", "home");

final GenericRecord record = new GenericData.Record(avroSchema);
aMap.forEach((k, v) -> {
  record.put(k, v);
});

writer.write(record);

Мы хотели бы поместить все значения в карту, а затем сгенерировать схему. Поскольку с помощью API Reflect это можно сделать для pojo, мне было интересно, можно ли это сделать и из hashmap?

В качестве побочного вопроса, есть ли способ устранить вышеприведенный forEach и просто написать карту?

...