Как прочитать / проанализировать * только * схему JSON из файла, содержащего сообщение avro в двоичном формате?

У меня есть сообщение avro в двоичном формате в файле.

Obj ^ A ^ D ^ Vavro.schemaÞ ^ B {"type": "record", "name": "rec", "namespace": "ns", "fields": [{"name": "id", "type": ["int", "null"]}, {"name": "name", "type": ["string", "null"]}, {"name": "foo_id", "type ": [" int "," null "]}]} ^ Tavro.codec^Lsnappy^@¤²/n¹¼Bù ‹9b> à« _ ^ NÌ ^ W

Меня просто интересует СХЕМА. Есть ли способ прочитать / проанализировать только схему из этого файла? В настоящее время я разбираю этот файл вручную, чтобы извлечь схему, но я надеялся, что avro поможет мне стандартным способом сделать это.


person TakeSoUp    schedule 20.06.2016    source источник


Ответы (2)


Avro предоставляет API для получения схемы из файла:

    File file = new File("myFile.avro")

    FileReader<?> reader = DataFileReader.openReader(file, new GenericDatumReader<>());
    Schema schema = reader.getSchema();
    System.out.println(schema);

Я думаю, что он должен соответствовать вашему определению «только схема», дайте мне знать, если это не так.

Вы также можете использовать команду getschema из avro-tools, если у вас нет причин делать это программно.

person Clément MATHIEU    schedule 21.06.2016
comment
Красивый! Спасибо! - person TakeSoUp; 21.06.2016

Использование avro-tools - это самый быстрый и простой способ получить схему avro из файла avro. Просто используйте следующую команду:

avro-tools getchema myfile.avro > myfile.avsc
person Heapify    schedule 17.05.2017