FLINK基础(87): DS算子与窗口(1)简介

Flink中的算子是将一个或多个DataStream转换为新的DataStream,可以将多个转换组合成复杂的数据流拓扑。

在Flink中,有多种不同的DataStream类型,他们之间是使用各种算子进行的。如下图所示:
Flink DataStream

以下列举下常用的算子,用到的代码例子都是Flink监听9000端口做为数据源。以下方法可以启动一个9000的socket端口服务。

Linux平台上可以使用

bash
nc -lk 9000
  • 1
  • 2

如果是 Windows 平台,可以通过 https://nmap.org/ncat/ 安装 ncat 然后运行:

bash
ncat -lk 9000
  • 1
  • 2

map

map可以理解为映射,对每个元素进行一定的变换后,映射为另一个元素。

flatmap

flatmap可以理解为将元素摊平,每个元素可以变为0个、1个、或者多个元素。

filter

filter是进行筛选。

keyBy

逻辑上将Stream根据指定的Key进行分区,是根据key的散列值进行分区的。

reduce

reduce是归并操作,它可以将KeyedStream 转变为 DataStream。

fold

给定一个初始值,将各个元素逐个归并计算。它将KeyedStream转变为DataStream。

union

union可以将多个流合并到一个流中,以便对合并的流进行统一处理。是对多个流的水平拼接。

参与合并的流必须是同一种类型。

join

根据指定的Key将两个流进行关联。

coGroup

关联两个流,关联不上的也保留下来。

connect

参考:https://www.jianshu.com/p/5b0574d466f8

将两个流纵向地连接起来。DataStream的connect操作创建的是ConnectedStreams或BroadcastConnectedStream,它用了两个泛型,即不要求两个dataStream的element是同一类型。

split

参考:https://cloud.tencent.com/developer/article/1382892

参考链接:

https://blog.csdn.net/chybin500/article/details/87260869

本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/13682167.html

原文地址:https://www.cnblogs.com/qiu-hua/p/13682167.html