org.apache.avro.hadoop.io

## 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 Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AvroDeserializer(Schema writerSchema, Schema readerSchema, ClassLoader classLoader)` Constructor.
    `protected` | `AvroDeserializer(Schema writerSchema, Schema readerSchema, DatumReader<D> datumReader)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `protected abstract T` | `createAvroWrapper()` Creates a new empty `T` (extends AvroWrapper) instance.
    `T` | `deserialize(T avroWrapperToReuse)`
    `Schema` | `getReaderSchema()` Gets the reader schema used for deserializing.
    `Schema` | `getWriterSchema()` Gets the writer schema used for deserializing.
    `void` | `open(InputStream inputStream)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AvroDeserializer

          protected AvroDeserializer(Schema writerSchema,
                                     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(Schema writerSchema,
                                     Schema readerSchema,
                                     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 Detail

    - #### getWriterSchema

          public Schema getWriterSchema()

      Gets the writer schema used for deserializing.
      Returns:
        The writer schema;

    - #### getReaderSchema

          public 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.

Copyright © 2009–2024 The Apache Software Foundation. All rights reserved.