spark算子
一、Map、Flatmap和MapPartition
| 算子 | 作用 |
|---|---|
| map | 接收一个高阶函数f,对每个算子进行f操作 |
| flatmap | 接收一个高阶函数f,对每个元素进行f操作,形成一个大的集合,然后在迭代器返回每个元素 |
| mapPartitions | map()是每次处理一条数据,mappartitions是每次处理一个分区中的数据,由于是遍历分区,减少了发送到执行器的交互次数,效率优于map(),但执行器内存不足可能会造成OOM(),因此内存空间较大的时候建议用mappartitions |
二、repartition和coalesce
| 算子 | 作用 |
|---|---|
| repartition | 调增rdd的并行度,会引入shuffle |
| coalesce | 只能降低rdd并行度,不会引入shuffle |
本文深入探讨Spark中的关键算子,包括Map、Flatmap、MapPartition、repartition与coalesce的分区策略,reduceByKey与groupByKey的聚合操作,以及collect、take和first等数据收集方法。同时,对比分析了repartitionAndSortWithinPartitions与repartition、sort的效率和数据倾斜问题,强调了repartitionAndSortWithinPartitions在减少网络传输和提高可读性上的优势。
订阅专栏 解锁全文
1286

被折叠的 条评论
为什么被折叠?



