I figured it out.
private static ByteArrayOutputStream EncodeData() throws IOException {
// TODO Auto-generated method stub
Schema schema = createMetaData();
GenericDatumWriter<GenericData.Record> datum = new
GenericDatumWriter<GenericData.Record>(schema);
GenericData.Record inner_record = new
GenericData.Record(schema.getField("trade").schema());
inner_record.put("inner_spn", new Long(23490843));
GenericData.Record record = new GenericData.Record(schema);
record.put("xyz", 1050324);
record.put("trade", inner_record);
ByteArrayOutputStream out = new ByteArrayOutputStream();
BinaryEncoder encoder = ENCODER_FACTORY.binaryEncoder(out,
null);
datum.write(record, encoder);
encoder.flush();
out.close();
return out;
}
private static Schema createMetaData() {
// TODO Auto-generated method stub
String jsonSchema = "{ \"type\" : \"record\"," +
"\"name\" : \"update\", "+
"\"fields\" : [ "+
"{\"name\": \"xyz\",
\"type\" : \"int\"}," +
"{\"name\": \"trade\",
\"type\" : {\"type\" : \"record\",
\"name\" : \"subfield\"," +
"
\"fields\" : [{\"name\" : \"inner_spn\",
\"type\" : \"long\"}]}}" +
"]}";
Schema schema = new Schema.Parser().parse(jsonSchema);
return schema;
}
--
View this message in context:
http://apache-avro.679487.n3.nabble.com/Records-inside-records-tp3561179p3561705.html
Sent from the Avro - Users mailing list archive at Nabble.com.