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

Man*_*waj 1 apache-spark rdd

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

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

Man*_*waj 5

map(func) 它有什么作用?通过提供的函数传递 RDD 的每个元素;即功能

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

下面比较 flatMap 和 map 在此处输入图片说明

mapPartitions(func) 将 mapPartitions 视为性能优化的工具。与跨集群运行相比,在本地机器上运行示例时,它对您没有多大帮助。它与 map 相同,但适用于 Spark RDD 分区。记住 RDD 中的第一个 D 是“分布式”——弹性分布式数据集。或者,换句话说,您可以说它分布在多个分区上。 在此处输入图片说明

mapPartitionsWithIndex(func) 与 mapPartitions 类似,但也提供了一个带有 Int 值的函数来指示分区的索引位置。 在此处输入图片说明

如果我们将上面的示例更改为使用具有 3 个切片的并行化列表,我们的输出会发生显着变化: 在此处输入图片说明