flatMap 和 Map区别

map

map算子对一个DataStream中的每个元素使用用户自定义的map函数进行处理,每个输入元素对应一个输出元素,最终整个数据流被转换成一个新的DataStream。输出的数据流DataStream[OUT]类型可能和输入的数据流DataStream[IN]不同。

file

flatMap

flatMap算子和map有些相似,输入都是数据流中的每个元素,与之不同的是,flatMap的输出可以是零个、一个或多个元素,当输出元素是一个列表时,flatMap会将列表展平。如下图所示,输入是包含圆形或正方形的列表,flatMap过滤掉圆形,正方形列表被展平,以单个元素的形式输出。

file

区别

flatMap会输入的数据流是的单个元素是一个列表,flatMap会把列表展开,可以说Flatmap可以做map可以做的一切,但是当输入的是单个元素的时候,还是用Map,这样会更加明确代码意图

你可能感兴趣的:(flatMap 和 Map区别)