flink中提供了大量的算子,我这里简单介绍一下常用的算子及基本使用:
- Map
DataStream → DataStream
输入一个元素产生一个元素,map的功能是对输入的元素进行转换操作。
一个映射函数,将输入流元素的值加倍:
dataStream.map { x => x * 2 }
- FlatMap
DataStream → DataStream
输入一个元素并产生0、1或多个元素。这个算子多用于拆分操作。
可将句子拆分为单词:
dataStream.flatMap { str => str.split(" ") }
- Filter
DataStream → DataStream
为每个元素评估一个布尔函数,并保留该函数返回true的元素。
过滤出零值的过滤器:
dataStream.filter { _ != 0 }
- KeyBy
DataStream → KeyedStream
逻辑上将一个流划分为不相交的分区,每个分区都包含同key的元素,在内部是通过hash实现的。以key分组,返回KeyedStream。
dataStream.keyBy(_.someKey)
dataStream.keyBy(_._1)
<