Here are some examples:
{
“namespace”: “test.avro”,
“name”: “FacebookUser”,
“type”: “record”,
“fields”: [
{“name”: “name”, “type”: “string”},
{“name”: “num_likes”, “type”: “int”},
{“name”: “num_photos”, “type”: “int”},
{“name”: “num_groups”, “type”: “int”},
{"name": "friends", "type": "array", "items": "FacebookUser"} ]
}
First, create a ByteArrayInputStream with the avro data as the input
Then, create DecoderFactory and then get the DirectBinaryDecoder from the factory
Next, instantiate the GenericDatumReader with the Avro schema
Now we can use the above reader to read the deserialized avro data from the decoder
Schema schema = Schema.parse(new File(“PositionList.avsc”));
ByteArrayInputStream bai = new ByteArrayInputStream(bytes);
DecoderFactory decoderFactory = new DecoderFactory();
Decoder decoder = DecoderFactory.get().directBinaryDecoder(bai, null);
GenericDatumReader<GenericRecord> reader = new GenericDatumReader<GenericRecord>(schema);
GenericRecord rec = (GenericRecord)reader.read(null, decoder);