概述
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支持数据类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复