Class AvroRowDeserializationSchema

  • All Implemented Interfaces:
    Serializable, org.apache.flink.api.common.serialization.DeserializationSchema<org.apache.flink.types.Row>, org.apache.flink.api.java.typeutils.ResultTypeQueryable<org.apache.flink.types.Row>

    @Internal
    public class AvroRowDeserializationSchema
    extends org.apache.flink.api.common.serialization.AbstractDeserializationSchema<org.apache.flink.types.Row>
    Deserialization schema from Avro bytes to Row.

    Deserializes the byte[] messages into (nested) Flink rows. It converts Avro types into types that are compatible with Flink's Table & SQL API.

    Projects with Avro records containing logical date/time types need to add a JodaTime dependency.

    Note: Changes in this class need to be kept in sync with the corresponding runtime class AvroRowSerializationSchema and schema converter AvroSchemaConverter.

    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.apache.flink.api.common.serialization.DeserializationSchema

        org.apache.flink.api.common.serialization.DeserializationSchema.InitializationContext
    • Constructor Summary

      Constructors 
      Constructor Description
      AvroRowDeserializationSchema​(Class<? extends org.apache.avro.specific.SpecificRecord> recordClazz)
      Creates a Avro deserialization schema for the given specific record class.
      AvroRowDeserializationSchema​(String avroSchemaString)
      Creates a Avro deserialization schema for the given Avro schema string.
    • Constructor Detail

      • AvroRowDeserializationSchema

        public AvroRowDeserializationSchema​(Class<? extends org.apache.avro.specific.SpecificRecord> recordClazz)
        Creates a Avro deserialization schema for the given specific record class. Having the concrete Avro record class might improve performance.
        Parameters:
        recordClazz - Avro record class used to deserialize Avro's record to Flink's row
      • AvroRowDeserializationSchema

        public AvroRowDeserializationSchema​(String avroSchemaString)
        Creates a Avro deserialization schema for the given Avro schema string.
        Parameters:
        avroSchemaString - Avro schema string to deserialize Avro's record to Flink's row
    • Method Detail

      • deserialize

        public org.apache.flink.types.Row deserialize​(byte[] message)
                                               throws IOException
        Specified by:
        deserialize in interface org.apache.flink.api.common.serialization.DeserializationSchema<org.apache.flink.types.Row>
        Specified by:
        deserialize in class org.apache.flink.api.common.serialization.AbstractDeserializationSchema<org.apache.flink.types.Row>
        Throws:
        IOException
      • getProducedType

        public org.apache.flink.api.common.typeinfo.TypeInformation<org.apache.flink.types.Row> getProducedType()
        Specified by:
        getProducedType in interface org.apache.flink.api.java.typeutils.ResultTypeQueryable<org.apache.flink.types.Row>
        Overrides:
        getProducedType in class org.apache.flink.api.common.serialization.AbstractDeserializationSchema<org.apache.flink.types.Row>
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object