Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Avro >> mail # user >> GenericDatumReader and datum reuse


Copy link to this message
-
Re: GenericDatumReader and datum reuse
A simple approach to reuse is to pass the value previously returned from read():

GenericRecord record = null;
while (...) {
  record = reader.read(record, decoder);
  ... code that does not retain a pointer to record ...
}

Doug

On Wed, Oct 30, 2013 at 3:07 PM, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
> Hello,
>
> While going thorough the API for GenericDatumReader, I came across this
> read[1] method and it wasn't immediately clear to me as to what the "reuse"
> of the datum really means.
>
> So for instance if I have an evolving schema, should this datum be created
> from the readerSchema or the writerSchema. So something like:
>
> record = new GenericData.Record(readerSchema); // created with readerSchema
>
> GenericDatumReader<GenericRecord> gdr = new
> GenericDatumReader<GenericRecord>(writerSchema, readerSchema);
>
> record = gdr.read(record, binaryDecoder);
>
> Or is it better to simply leave it off as null?
>
> record = gdr.read(null, binaryDecoder);
>
>
> Thanks,
>
>
> [1]
> http://avro.apache.org/docs/1.7.4/api/java/org/apache/avro/generic/GenericDatumReader.html#read(D,
> org.apache.avro.io.Decoder)
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB