FLATMAP
flatMap
算子和map
算子很类似,不同之处在于针对每一个输入事件flatMap
可以生成0个、1个或者多个输出元素。事实上,flatMap
转换算子是filter
和map
的泛化。所以flatMap
可以实现map
和filter
算子的功能。图5-3展示了flatMap
如何根据输入事件的颜色来做不同的处理。如果输入事件是白色方框,则直接输出。输入元素是黑框,则复制输入。灰色方框会被过滤掉。
flatMap算子将会应用在每一个输入事件上面。对应的FlatMapFunction
定义了flatMap()
方法,这个方法返回0个、1个或者多个事件到一个Collector
集合中,作为输出结果。
// T: the type of input elements
// O: the type of output elements
FlatMapFunction[T, O]> flatMap(T, Collector[O]): Unit
实例一:
下面的例子展示了在数据分析教程中经常用到的例子,我们用flatMap
来实现。使用_
来切割传感器ID,比如sensor_1
。