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

Reply via email to