Class AvroDeserializer<T extends AvroWrapper<D>,D>

java.lang.Object
org.apache.avro.hadoop.io.AvroDeserializer<T,D>
Type Parameters:
T - The type of Avro wrapper.
D - The Java type of the Avro data being wrapped.
All Implemented Interfaces:
Deserializer<T>
Direct Known Subclasses:
AvroKeyDeserializer, AvroValueDeserializer

public abstract class AvroDeserializer<T extends AvroWrapper<D>,D> extends Object implements Deserializer<T>
Deserializes AvroWrapper objects within Hadoop.

Keys and values containing Avro types are more efficiently serialized outside of the WritableSerialization model, so they are wrapper in AvroWrapper objects and deserialization is handled by this class.

MapReduce jobs that use AvroWrapper objects as keys or values need to be configured with AvroSerialization. Use AvroJob to help with Job configuration.

  • Constructor Details

    • AvroDeserializer

      protected AvroDeserializer(org.apache.avro.Schema writerSchema, org.apache.avro.Schema readerSchema, ClassLoader classLoader)
      Constructor.
      Parameters:
      writerSchema - The Avro writer schema for the data to deserialize.
      readerSchema - The Avro reader schema for the data to deserialize (may be null).
    • AvroDeserializer

      protected AvroDeserializer(org.apache.avro.Schema writerSchema, org.apache.avro.Schema readerSchema, org.apache.avro.io.DatumReader<D> datumReader)
      Constructor.
      Parameters:
      writerSchema - The Avro writer schema for the data to deserialize.
      readerSchema - The Avro reader schema for the data to deserialize (may be null).
      datumReader - The Avro datum reader to use for deserialization.
  • Method Details

    • getWriterSchema

      public org.apache.avro.Schema getWriterSchema()
      Gets the writer schema used for deserializing.
      Returns:
      The writer schema;
    • getReaderSchema

      public org.apache.avro.Schema getReaderSchema()
      Gets the reader schema used for deserializing.
      Returns:
      The reader schema.
    • open

      public void open(InputStream inputStream) throws IOException
      Specified by:
      open in interface Deserializer<T extends AvroWrapper<D>>
      Throws:
      IOException
    • deserialize

      public T deserialize(T avroWrapperToReuse) throws IOException
      Specified by:
      deserialize in interface Deserializer<T extends AvroWrapper<D>>
      Throws:
      IOException
    • close

      public void close() throws IOException
      Specified by:
      close in interface Deserializer<T extends AvroWrapper<D>>
      Throws:
      IOException
    • createAvroWrapper

      protected abstract T createAvroWrapper()
      Creates a new empty T (extends AvroWrapper) instance.
      Returns:
      A new empty T instance.