做网站需要注意什么问题,网站建设公司如何做大,建设网站学什么,钢结构网站Flink的使用过程中#xff0c;我们的数据都是定义好的 UserBehavior 类型#xff0c;那还有没有其他更灵活的类型可以用呢#xff1f;Flink 支持的数据类型到底有哪些#xff1f;
1. Flink 的类型系统
Flink 作为一个分布式处理框架#xff0c;处理的是以数据对象作为元…Flink的使用过程中我们的数据都是定义好的 UserBehavior 类型那还有没有其他更灵活的类型可以用呢Flink 支持的数据类型到底有哪些
1. Flink 的类型系统
Flink 作为一个分布式处理框架处理的是以数据对象作为元素的流。Flink 使用类型信息 (TypeInformation) 来统一表示数据类型并为每个数据类型生成特定的序列化器、反序列化器和比较器。对于复杂的数据类型Flink 可能不支持因此需要使用类型推断机制。此外Flink 还支持自定义类型信息以便更好地处理不同类型的数据。
2. Flink 支持的数据类型
常见的 Java 和 Scala 数据类型Flink 都是支持的。Flink 在内部对不同的类型支持进行了划分这些类型可以在 Types 工具类中找到
基本类型 所有 Java 基本类型及其包装类再加上 Void、String、Date、BigDecimal 和 BigInteger。数组类型基本类型数组PRIMITIVE_ARRAY和对象数组(OBJECT_ARRAY)复合数据类型 Java 元组类型TUPLE这是 Flink 内置的元组类型是 Java API 的一部分。最多25 个字段也就是从 Tuple0~Tuple25不支持空字段Scala 样例类及 Scala 元组不支持空字段行类型ROW可以认为是具有任意个字段的元组,并支持空字段POJOFlink 自定义的类似于 Java bean 模式的类 辅助类型Option、Either、List、Map等泛型类型GENERIC
Flink 对 POJO 类型的要求如下
类是公共的public和独立的standalone也就是说没有非静态的内部类类有一个公共的无参构造方法类中的所有字段是 public 且非 final 的或者有一个公共的 getter 和 setter 方法这些 方法需要符合 Java bean 的命名规范。
3. 类型提示Type Hints
Flink提供了显示注册类型信息的方式通过.returns()实现。
.map(word - Tuple2.of(word, 1L))
.returns(Types.TUPLE(Types.STRING, Types.LONG));如果是复杂类型信息可以这样使用
returns(new TypeHintTuple2Integer, SomeType(){})