Flink
流应用程序处理的是以数据对象表示的事件流。所以在
Flink
内部,我们
需要能够处理这些对象。它们需要被序列化和反序列化,以便通过网络传送它们;
或者从状态后端、检查点和保存点读取它们。为了有效地做到这一点,
Flink
需要明
确知道应用程序所处理的数据类型。
Flink
使用类型信息的概念来表示数据类型,并
为每个数据类型生成特定的序列化器、反序列化器和比较器。
Flink
还具有一个类型提取系统,该系统分析函数的输入和返回类型,以自动获
取类型信息,从而获得序列化器和反序列化器。但是,在某些情况下,例如
lambda
函数或泛型类型,需要显式地提供类型信息,才能使应用程序正常工作或提高其性
能。
Flink
支持
Java
和
Scala
中所有常见数据类型。使用最广泛的类型有以下几种。
1
基础数据类型
Flink
支持所有的
Java
和
Scala
基础数据类型,
Int, Double, Long, String, …
DataStream<Integer> numberStream = env.fromElements(
1
,
2
,
3
,
4
);
numberStream.map(data -> data *
2
);
2 Java
和
Scala
元组(
Tuples
)

3 Scala
样例类(
case classes
)
4 Java 简单对象(POJOs)
5 其它(Arrays, Lists, Maps, Enums, 等等)
Flink
对
Java
和
Scala
中的一些特殊目的的类型也都是支持的,比如
Java
的
ArrayList
,
HashMap
,
Enum
等等
最后
以上就是小巧山水最近收集整理的关于flink支持数据类型的全部内容,更多相关flink支持数据类型内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复