Apache Spark:map与flatMap vs mapPartitions vs mapPartitionsWithIndex的比较

时间:2017-03-24 11:06:24

标签: apache-spark rdd

Apache Spark:map与flatMap vs mapPartitions vs mapPartitionsWithIndex

的比较

欢迎提出建议,以提高我们的知识。

1 个答案:

答案 0 :(得分:3)

<强>地图(FUNC) 它有什么作用?通过提供的函数传递RDD的每个元素;即func

<强> flatMap(FUNC) “与map类似,但每个输入项可以映射到0个或更多输出项(因此func应该返回Seq而不是单个项)。”

将flatMap与地图进行比较,如下所示 enter image description here

<强> mapPartitions(FUNC) 将mapPartitions视为性能优化的工具。与在群集中运行相比,在本地计算机上运行示例时,这对您没有多大帮助。它与map相同,但与Spark RDD分区一起使用。请记住,RDD中的第一个D是“分布式” - 弹性分布式数据集。或者,换句话说,你可以说它分布在分区上。 enter image description here

<强> mapPartitionsWithIndex(FUNC) 与mapPartitions类似,但也提供了一个带有Int值的函数来指示分区的索引位置。 enter image description here

如果我们将上面的示例更改为使用包含3个切片的并行化列表,则输出会发生显着变化: enter image description here