Package org.apache.flink.formats.avro
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
,SerializationSchema<T>
- Direct Known Subclasses:
RegistryAvroSerializationSchema
public class AvroSerializationSchema<T> extends Object implements SerializationSchema<T>
Serialization schema that serializes to Avro binary format.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.flink.api.common.serialization.SerializationSchema
SerializationSchema.InitializationContext
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AvroSerializationSchema(Class<T> recordClazz, org.apache.avro.Schema schema, AvroFormatOptions.AvroEncoding encoding)
Creates an Avro deserialization schema.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkAvroInitialized()
boolean
equals(Object o)
static AvroSerializationSchema<org.apache.avro.generic.GenericRecord>
forGeneric(org.apache.avro.Schema schema)
CreatesAvroSerializationSchema
that serializesGenericRecord
using provided schema.static AvroSerializationSchema<org.apache.avro.generic.GenericRecord>
forGeneric(org.apache.avro.Schema schema, AvroFormatOptions.AvroEncoding encoding)
CreatesAvroSerializationSchema
that serializesGenericRecord
using provided schema.static <T extends org.apache.avro.specific.SpecificRecord>
AvroSerializationSchema<T>forSpecific(Class<T> tClass)
CreatesAvroSerializationSchema
that serializesSpecificRecord
using provided schema.static <T extends org.apache.avro.specific.SpecificRecord>
AvroSerializationSchema<T>forSpecific(Class<T> tClass, AvroFormatOptions.AvroEncoding encoding)
CreatesAvroSerializationSchema
that serializesSpecificRecord
using provided schema.protected org.apache.avro.generic.GenericDatumWriter<T>
getDatumWriter()
protected org.apache.avro.io.Encoder
getEncoder()
protected ByteArrayOutputStream
getOutputStream()
org.apache.avro.Schema
getSchema()
int
hashCode()
void
open(SerializationSchema.InitializationContext context)
Initialization method for the schema.byte[]
serialize(T object)
Serializes the incoming element to a specified type.
-
-
-
Constructor Detail
-
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 isGenericRecord
-
-
Method Detail
-
forSpecific
public static <T extends org.apache.avro.specific.SpecificRecord> AvroSerializationSchema<T> forSpecific(Class<T> tClass)
CreatesAvroSerializationSchema
that serializesSpecificRecord
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)
CreatesAvroSerializationSchema
that serializesSpecificRecord
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)
CreatesAvroSerializationSchema
that serializesGenericRecord
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)
CreatesAvroSerializationSchema
that serializesGenericRecord
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(SerializationSchema.InitializationContext context) throws Exception
Description copied from interface:SerializationSchema
Initialization method for the schema. It is called before the actual working methodsSerializationSchema.serialize(Object)
and thus suitable for one time setup work.The provided
SerializationSchema.InitializationContext
can be used to access additional features such as e.g. registering user metrics.- Specified by:
open
in interfaceSerializationSchema<T>
- Parameters:
context
- Contextual information that can be used during initialization.- Throws:
Exception
-
serialize
public byte[] serialize(T object)
Description copied from interface:SerializationSchema
Serializes the incoming element to a specified type.- Specified by:
serialize
in interfaceSerializationSchema<T>
- Parameters:
object
- The incoming element to be serialized- Returns:
- The serialized element.
-
checkAvroInitialized
protected void checkAvroInitialized()
-
-