Apache Spark 中的 mapPartitions 和 foreachPartition 有什么区别

AJm*_*AJm 3 apache-spark pyspark pyspark-sql

我有一个 DataFrame,其中一列有逗号分隔的数据。

例如:数据看起来像这样:[{value:1}, {value:2, value:3}, {some value}, {somevalue, othervalue}]

该列是字符串数据类型。我想将它转换为 List 并应用一些函数。现在我有一个函数可以将字符串列转换为列表和其他应用逻辑。

但是哪个函数会更好和优化,因为我们有 2 个类似的声音函数mapPartitionsforeachPartitions,它是否具有完全相同的性能以及在什么场景下使用哪个?

小智 5

区别与 map 和 foreach 相同。在这里寻找很好的解释 - foreach 和 map 之间有区别吗?.

mapPartitions 和 foreachPartitions 是应用于Dataframe 的每个分区而不是每个元素的转换/操作。请参阅此处了解对比 map 和 mapPartitions 的解释 - Apache Spark:map vs mapPartitions?.

根据您的描述,听起来您想要 map 或 foreach。