Returns type information for primitive Boolean and java.lang.Boolean.
Returns type information for primitive Boolean and java.lang.Boolean. Does not support a null value.
Returns type information for primitive Byte and java.lang.Byte.
Returns type information for primitive Byte and java.lang.Byte. Does not support a null value.
Returns type information for a Scala case class and Scala tuples.
Returns type information for a Scala case class and Scala tuples.
A Scala case class is a fixed-length composite type for storing multiple values in a deterministic field order. Fields of a case class are typed. Case classes and tuples are the most efficient composite type; therefore, they do not not support null-valued fields unless the type of the field supports nullability.
Example use: Types.CASE_CLASS[MyCaseClass]
case class to be analyzed
Returns type information for primitive Char and java.lang.Character.
Returns type information for primitive Char and java.lang.Character. Does not support a null value.
Returns type information for primitive Double and java.lang.Double.
Returns type information for primitive Double and java.lang.Double. Does not support a null value.
Returns type information for Scala Either type.
Returns type information for Scala Either type. Null values are not supported.
The either type can be used for a value of two possible types.
Example use: Types.EITHER(Types.INT, Types.NOTHING]
type information of left side / Left
type information of right side / Right
Returns type information for Scala enumerations.
Returns type information for Scala enumerations. Null values are not supported.
enumeration object
value class
Returns type information for primitive Float and java.lang.Float.
Returns type information for primitive Float and java.lang.Float. Does not support a null value.
Returns generic type information for any Scala/Java object.
Returns generic type information for any Scala/Java object. The serialization logic will use the general purpose serializer Kryo.
Generic types are black-boxes for Flink, but allow any object and null values in fields.
By default, serialization of this type is not very efficient. Please read the documentation about how to improve efficiency (namely by pre-registering classes).
any Scala/Java class
Returns type information for primitive Int and java.lang.Integer.
Returns type information for primitive Int and java.lang.Integer. Does not support a null value.
Returns type information for Java java.math.BigDecimal.
Returns type information for Java java.math.BigDecimal. Supports a null value.
Note that Scala BigDecimal is not supported yet.
Returns type information for Java java.math.BigInteger.
Returns type information for Java java.math.BigInteger. Supports a null value.
Note that Scala BigInt is not supported yet.
Returns type information for primitive Long and java.lang.Long.
Returns type information for primitive Long and java.lang.Long. Does not support a null value.
Returns type information for Scala Nothing.
Returns type information for Scala Nothing. Does not support a null value.
Returns type information for Scala/Java arrays of object types (such as Array[String]
,
Array[java.lang.Integer]
).
Returns type information for Scala/Java arrays of object types (such as Array[String]
,
Array[java.lang.Integer]
). The array itself must not be null. Null values for elements
are supported.
element type of the array
Returns type information for Scala Option type.
Returns type information for Scala Option type. Null values are not supported.
The option type can be used for distinguishing between a value or no value.
Example use: Types.OPTION(Types.INT)
type information of the option's value
Returns type information for a POJO (Plain Old Java Object) and allows to specify all fields manually.
Returns type information for a POJO (Plain Old Java Object) and allows to specify all fields manually.
A POJO class is public and standalone (no non-static inner class). It has a public no-argument constructor. All non-static, non-transient fields in the class (and all superclasses) are either public (and non-final) or have a public getter and a setter method that follows the Java beans naming conventions for getters and setters.
A POJO is a fixed-length, null-aware composite type with non-deterministic field order. Every field can be null independent of the field's type.
The generic types for all fields of the POJO can be defined in a hierarchy of subclasses.
If Flink's type analyzer is unable to extract a POJO field, an org.apache.flink.api.common.functions.InvalidTypesException is thrown.
Note: In most cases the type information of fields can be determined automatically, we recommend to use Types.POJO(Class).
POJO class
map of fields that map a name to type information. The map key is the name of the field and the value is its type.
Returns type information for a POJO (Plain Old Java Object).
Returns type information for a POJO (Plain Old Java Object).
A POJO class is public and standalone (no non-static inner class). It has a public no-argument constructor. All non-static, non-transient fields in the class (and all superclasses) are either public (and non-final) or have a public getter and a setter method that follows the Java beans naming conventions for getters and setters.
A POJO is a fixed-length, null-aware composite type with non-deterministic field order. Every field can be null independent of the field's type.
The generic types for all fields of the POJO can be defined in a hierarchy of subclasses.
If Flink's type analyzer is unable to extract a valid POJO type information with type information for all fields, an org.apache.flink.api.common.functions.InvalidTypesException} is thrown. Alternatively, you can use Map) to specify all fields manually.
POJO class to be analyzed by Flink
Returns type information for Scala/Java arrays of primitive type (such as Array[Byte]
).
Returns type information for Scala/Java arrays of primitive type (such as Array[Byte]
).
The array and its elements do not support null values.
element type of the array (e.g. Types.BOOLEAN, Types.INT, Types.DOUBLE)
Returns type information for org.apache.flink.types.Row with fields of the given types and with given names.
Returns type information for org.apache.flink.types.Row with fields of the given types and with given names. A row must not be null.
A row is a variable-length, null-aware composite type for storing multiple values in a deterministic field order. Every field can be null independent of the field's type. The type of row fields cannot be automatically inferred; therefore, it is required to provide type information whenever a row is used.
The schema of rows can have up to Integer.MAX_VALUE
fields, however, all row
instances must strictly adhere to the schema defined by the type info.
Example use: Types.ROW(Array("name", "number"), Array(Types.STRING, Types.INT))
.
array of field names
array of field types
Returns type information for org.apache.flink.types.Row with fields of the given types.
Returns type information for org.apache.flink.types.Row with fields of the given types. A row itself must not be null.
A row is a fixed-length, null-aware composite type for storing multiple values in a deterministic field order. Every field can be null regardless of the field's type. The type of row fields cannot be automatically inferred; therefore, it is required to provide type information whenever a row is used.
The schema of rows can have up to Integer.MAX_VALUE
fields, however, all row
instances must strictly adhere to the schema defined by the type info.
This method generates type information with fields of the given types; the fields have the default names (f0, f1, f2 ..).
The types of the row fields, e.g., Types.STRING, Types.INT
Returns type information for primitive Short and java.lang.Short.
Returns type information for primitive Short and java.lang.Short. Does not support a null value.
Returns type information for java.sql.Date.
Returns type information for java.sql.Date. Supports a null value.
Returns type information for java.sql.Time.
Returns type information for java.sql.Time. Supports a null value.
Returns type information for java.sql.Timestamp.
Returns type information for java.sql.Timestamp. Supports a null value.
Returns type information for String and java.lang.String.
Returns type information for String and java.lang.String. Supports a null value.
Returns type information for Scala collections that implement Traversable.
Returns type information for Scala collections that implement Traversable. Null values are not supported.
Returns type information for Scala Try type.
Returns type information for Scala Try type. Null values are not supported.
The try type can be used for distinguishing between a value or throwable.
Example use: Types.TRY(Types.INT)
type information of the try's value
Returns type information for a Scala tuple.
Returns type information for a Scala tuple.
A Scala tuple is a fixed-length composite type for storing multiple values in a deterministic field order. Fields of a tuple are typed. Tuples are the most efficient composite type; therefore, they do not not support null-valued fields unless the type of the field supports nullability.
Example use: Types.TUPLE[(String, Int)]
tuple to be analyzed
Returns type information for Scala Unit.
Returns type information for Scala Unit. Does not support a null value.
Generates type information based on the given class and/or its type parameters.
Generates type information based on the given class and/or its type parameters.
The definition is similar to a org.apache.flink.api.common.typeinfo.TypeHint but does not require to implement anonymous classes.
If the class could not be analyzed by the Scala type analyzer, the Java analyzer will be used.
Example use:
Types.of[(Int, String, String)]
for Scala tuples
Types.of[Unit]
for Scala specific types
class to be analyzed
This class gives access to the type information of the most common Scala types for which Flink has built-in serializers and comparators.
This class contains types of org.apache.flink.api.common.typeinfo.Types and adds types for Scala specific classes (such as Unit or case classes).
In many cases, Flink tries to analyze generic signatures of functions to determine return types automatically. This class is intended for cases where type information has to be supplied manually or cases where automatic type inference results in an inefficient type.
Scala macros allow to determine type information of classes and type parameters. You can use Types.of to let type information be determined automatically.