Apache flink ApacheFlink:map与flatMap

Apache flink ApacheFlink:map与flatMap,apache-flink,Apache Flink,在flink中,flatMap还可以发出一条记录。看来平面地图可以代替地图。有人能告诉我这种情况有什么不同吗?谢谢。如果你认为地图是多余的,你是对的。Flatmap可以做map所能做的一切,等等 然而,我确实在输入和输出之间存在严格的一对一对应关系的情况下使用map。这向读者清楚地表明,例如,在任何情况下,错误或无效输入都不会导致操作无法生成输出记录。如果您认为映射是多余的,则您是正确的。Flatmap可以做map所能做的一切,等等 然而,我确实在输入和输出之间存在严格的一对一对应关系的情况下使

在flink中,flatMap还可以发出一条记录。看来平面地图可以代替地图。有人能告诉我这种情况有什么不同吗?谢谢。

如果你认为地图是多余的,你是对的。Flatmap可以做map所能做的一切,等等


然而,我确实在输入和输出之间存在严格的一对一对应关系的情况下使用map。这向读者清楚地表明,例如,在任何情况下,错误或无效输入都不会导致操作无法生成输出记录。

如果您认为映射是多余的,则您是正确的。Flatmap可以做map所能做的一切,等等

然而,我确实在输入和输出之间存在严格的一对一对应关系的情况下使用map。这为读者提供了一个明确的指示,例如,在任何情况下,错误或无效输入都不会导致操作无法生成输出记录。

使用
map()
也可以方便地使用lambdas。例如,要将
Tuple2
转换为
字符串
,可以执行以下操作

.map(value -> value.f1)
使用
map()。例如,要将
Tuple2
转换为
字符串
,可以执行以下操作

.map(value -> value.f1)

map
flatMap
之间的主要区别在于返回类型。 这两种方法都适用于DataStream和DataSet对象,并针对流或集合中的每个元素执行

但是,
map
方法只返回一个元素,而
flatMap
返回一个集合(可以不包含任何、一个或多个元素)

  • map
    方法通过方法
    O out map(I elem)
    接收接口
    MapFunction
    的参数。输入是一个元素,输出是一个对象
  • flatMap
    方法通过方法
    void flatMap(I elem,Collector out)
    接收接口
    flatMap函数的参数。输入是元素,输出是对象的集合
    
地图和平面地图的主要区别在于返回类型。 这两种方法都适用于DataStream和DataSet对象,并针对流或集合中的每个元素执行

但是,
map
方法只返回一个元素,而
flatMap
返回一个集合(可以不包含任何、一个或多个元素)

  • map
    方法通过方法
    O out map(I elem)
    接收接口
    MapFunction
    的参数。输入是一个元素,输出是一个对象
  • flatMap
    方法通过方法
    void flatMap(I elem,Collector out)
    接收接口
    flatMap函数的参数。输入是元素,输出是对象的集合
    
非常感谢!对我来说,最好使用平面图。因为我将向公司的用户提供一个统一的端口。少就是简单。非常感谢!对我来说,最好使用平面图。因为我将向公司的用户提供一个统一的端口。少就是简单。