Class AvroSerializationSchema<T>

java.lang.Object
org.apache.flink.formats.avro.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:
  • Constructor Details

    • AvroSerializationSchema

      protected AvroSerializationSchema(Class<T> recordClazz, @Nullable org.apache.avro.Schema schema, AvroFormatOptions.AvroEncoding encoding)
      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 Details

    • 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
    • forSpecific

      public static <T extends org.apache.avro.specific.SpecificRecord> AvroSerializationSchema<T> forSpecific(Class<T> tClass, AvroFormatOptions.AvroEncoding encoding)
      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
    • forGeneric

      public static AvroSerializationSchema<org.apache.avro.generic.GenericRecord> forGeneric(org.apache.avro.Schema schema, AvroFormatOptions.AvroEncoding encoding)
      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.Encoder getEncoder()
    • getDatumWriter

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

      protected ByteArrayOutputStream getOutputStream()
    • 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()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object