Class AvroSerializationSchema<T>

  • Type Parameters:
    T - the type to be serialized
    All Implemented Interfaces:
    Serializable, org.apache.flink.api.common.serialization.SerializationSchema<T>
    Direct Known Subclasses:
    RegistryAvroSerializationSchema

    public class AvroSerializationSchema<T>
    extends Object
    implements org.apache.flink.api.common.serialization.SerializationSchema<T>
    Serialization schema that serializes to Avro binary format.
    See Also:
    Serialized Form
    • Constructor Detail

      • AvroSerializationSchema

        protected AvroSerializationSchema​(Class<T> recordClazz,
                                          @Nullable
                                          org.apache.avro.Schema schema)
        Creates an Avro deserialization schema.
        Parameters:
        recordClazz - class to serialize. Should be one of: SpecificRecord, GenericRecord.
        schema - writer Avro schema. Should be provided if recordClazz is GenericRecord
    • Method Detail

      • forSpecific

        public static <T extends org.apache.avro.specific.SpecificRecord> AvroSerializationSchema<T> forSpecific​(Class<T> tClass)
        Creates AvroSerializationSchema that serializes SpecificRecord using provided schema.
        Parameters:
        tClass - the type to be serialized
        Returns:
        serialized record in form of byte array
      • forGeneric

        public static AvroSerializationSchema<org.apache.avro.generic.GenericRecord> forGeneric​(org.apache.avro.Schema schema)
        Creates AvroSerializationSchema that serializes GenericRecord using provided schema.
        Parameters:
        schema - the schema that will be used for serialization
        Returns:
        serialized record in form of byte array
      • getSchema

        public org.apache.avro.Schema getSchema()
      • getEncoder

        protected org.apache.avro.io.BinaryEncoder getEncoder()
      • getDatumWriter

        protected org.apache.avro.generic.GenericDatumWriter<T> getDatumWriter()
      • open

        public void open​(org.apache.flink.api.common.serialization.SerializationSchema.InitializationContext context)
                  throws Exception
        Specified by:
        open in interface org.apache.flink.api.common.serialization.SerializationSchema<T>
        Throws:
        Exception
      • serialize

        public byte[] serialize​(T object)
        Specified by:
        serialize in interface org.apache.flink.api.common.serialization.SerializationSchema<T>
      • checkAvroInitialized

        protected void checkAvroInitialized()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object