gpt4 book ai didi

hadoop - Apache Flink : MapPartition Vs. 平面图

转载 作者:可可西里 更新时间:2023-11-01 14:45:14 29 4
gpt4 key购买 nike

我对 MapPartition 没有搞清楚。请有人解释一下 Mappartition 的一些用例以及它与 FlatMap 有何不同?

最佳答案

区别在于方法的接口(interface)以及它们的调用方式。

  • FlatMapFunctionflatMap(IN val, Collector<OUT> out)为每条记录调用方法并且可以发出 0 , 1 , 或每个输入记录的更多记录。因此,一个 FlatMapFunction逐一处理记录。它不应跨函数调用保持状态。
  • MapPartitionFunctionmapPartition(Iterable<IN> vals, Collector<OUT> out)方法只被调用一次,并接收一个遍历所有分区的迭代器。它可以发出 0 , 1 , 或整个分区的更多记录。因此,一个 MapPartitionFunction可以(原则上)收集整个分区并计算结果。但是,如果分区很大,这可能很危险,因为您很容易耗尽内存。如果您首先对分区进行排序,则 mapPartition 通常很有用。

所以,一般来说,mapPartition更通用,可以做所有 flatMap做更多。然而,与许多强大的工具一样,您需要更加小心,因为您可能搬起石头砸自己的脚。 flatMap界面更安全(通常更容易)使用。

关于hadoop - Apache Flink : MapPartition Vs. 平面图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45583876/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com