Hi! DatumWriter doesn't serialize the schema when writing individual datum out. If you look at your byte array contents, I believe you'll find that it just contains the binary representation of the record.
Your use case sounds very similar to a recent question on the list on storing records in byte arrays without the original writer schema[1]. The guidance on that thread about using a schema id should work for your scenario as well. Note that it will be up to you to handle serialization of the id and lookup of the schema. [1]: *http://s.apache.org/2IM <http://s.apache.org/2IM>* On Thu, Feb 12, 2015 at 1:50 AM, Arunasalam G <[email protected]> wrote: > Hi, > > Is there any way to retrieve schema from the encoded data without knowing > its schema prior to deserialization? > As requested, we have given the steps that we did for serializing the data > and schema. > > Please help us in resolving the scenario. > Looking forward to hearing from you soon. > > Thanks and Regards, > Arun G. > > On Wed, Feb 11, 2015 at 2:56 PM, Arunasalam G <[email protected]> > wrote: > >> Hi, >> >> We serialized the schema using the following code. >> >> ByteArrayOutputStream out = new ByteArrayOutputStream(); >> BinaryEncoder encoder = EncoderFactory.get().binaryEncoder(out, null); >> DatumWriter<Record> writer = new SpecificDatumWriter<Record>(schema); >> >> writer.write(record, encoder); >> encoder.flush(); >> out.close(); >> >> Here, record is of type org.apache.avro.generic.GenericData.Record. >> >> Thanks and Regards, >> Arun G >> >> >> On Wed, Feb 11, 2015 at 2:08 PM, Sean Busbey <[email protected]> wrote: >> >>> On Wed, Feb 11, 2015 at 1:24 AM, Arunasalam G <[email protected]> >>> wrote: >>> >>>> >>>> Our scenario is we have stored the data with schema added to it. >>>> >>>> I would like to make it more simple without bringing the Hbase into >>>> consideration. >>>> >>>> We have an Avro data object which has both data and schema and is >>>> serialized to Byte Array. >>>> Is there any way to retrieve the schema from this ByteArray object? >>>> >>>> Lets assume that we don't know what schema is present in the incoming >>>> object. >>>> I could find that for an AVRO data file, its possible to retrieve the >>>> schema from the file and similarly, is there any way for retrieving the >>>> schema from a serialized byte array object? >>>> >>>> >>> It depends entirely on how you serialized the schema + binary into the >>> byte array. Did you use some library or can you briefly describe the method >>> used? >>> >>> -- >>> Sean >>> >> >> > -- Sean
