Class AvroTypeInfo<T extends org.apache.avro.specific.SpecificRecordBase>

  • All Implemented Interfaces:
    Serializable

    public class AvroTypeInfo<T extends org.apache.avro.specific.SpecificRecordBase>
    extends org.apache.flink.api.java.typeutils.PojoTypeInfo<T>
    Special type information to generate a special AvroTypeInfo for Avro POJOs (implementing SpecificRecordBase, the typed Avro POJOs)

    Proceeding: It uses a regular pojo type analysis and replaces all GenericType<CharSequence> with a GenericType<avro.Utf8>. All other types used by Avro are standard Java types. Only strings are represented as CharSequence fields and represented as Utf8 classes at runtime. CharSequence is not comparable. To make them nicely usable with field expressions, we replace them here by generic type infos containing Utf8 classes (which are comparable),

    This class is checked by the AvroPojoTest.

    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.apache.flink.api.java.typeutils.PojoTypeInfo

        org.apache.flink.api.java.typeutils.PojoTypeInfo.NamedFlatFieldDescriptor
      • Nested classes/interfaces inherited from class org.apache.flink.api.common.typeutils.CompositeType

        org.apache.flink.api.common.typeutils.CompositeType.FlatFieldDescriptor, org.apache.flink.api.common.typeutils.CompositeType.InvalidFieldReferenceException, org.apache.flink.api.common.typeutils.CompositeType.TypeComparatorBuilder<T extends Object>
    • Constructor Summary

      Constructors 
      Constructor Description
      AvroTypeInfo​(Class<T> typeClass)
      Creates a new Avro type info for the given class.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.apache.flink.api.common.typeutils.TypeSerializer<T> createSerializer​(org.apache.flink.api.common.ExecutionConfig config)  
      org.apache.flink.api.common.typeutils.TypeSerializer<T> createSerializer​(org.apache.flink.api.common.serialization.SerializerConfig config)  
      • Methods inherited from class org.apache.flink.api.java.typeutils.PojoTypeInfo

        canEqual, createPojoSerializer, createPojoSerializer, createTypeComparatorBuilder, equals, getArity, getFieldIndex, getFieldNames, getFlatFields, getPojoFieldAt, getTotalFields, getTypeAt, getTypeAt, hashCode, isBasicType, isSortKeyType, isTupleType, toString
      • Methods inherited from class org.apache.flink.api.common.typeutils.CompositeType

        createComparator, getFlatFields, getTypeClass, hasDeterministicFieldOrder, hasField, isKeyType
      • Methods inherited from class org.apache.flink.api.common.typeinfo.TypeInformation

        getGenericParameters, of, of
    • Constructor Detail

      • AvroTypeInfo

        public AvroTypeInfo​(Class<T> typeClass)
        Creates a new Avro type info for the given class.
    • Method Detail

      • createSerializer

        public org.apache.flink.api.common.typeutils.TypeSerializer<T> createSerializer​(org.apache.flink.api.common.serialization.SerializerConfig config)
        Overrides:
        createSerializer in class org.apache.flink.api.java.typeutils.PojoTypeInfo<T extends org.apache.avro.specific.SpecificRecordBase>
      • createSerializer

        public org.apache.flink.api.common.typeutils.TypeSerializer<T> createSerializer​(org.apache.flink.api.common.ExecutionConfig config)
        Overrides:
        createSerializer in class org.apache.flink.api.java.typeutils.PojoTypeInfo<T extends org.apache.avro.specific.SpecificRecordBase>