Spark获取RDD的分区方式:
使用partitioner对象,本质上是告诉我们RDD中各个健分别属于哪个分区。
isDefined:用来判断该对象是不是有值
Get:使用get来获取其中的值
date.partitioner.isDefined
date.partitioner.get
Spark从分区中获益的操作:
Spark有许多算子都是要跨节点进行通信的。
所以这些算子如果使用分区的话,都可以很大程度上提高性能和效率。
这些操作都有:
(cogroup,groupWith,join,leftOutJoin,rightOutJoin,groupByKey,reduceByKey,combintByKey,lookup)
reduceByKey:对于像reduceByKey这样只作用于单个RDD的操作来说,运行在未分区的RDD上的时候会导致每个健的所有对应值都在每台机器上进行本地计算,只需要把本地最终计算的结果值,从各个节点上传到主节点,所以原本的网络通信开销就不大。
本文介绍如何利用Spark的partitioner对象来提升数据处理性能,详细解释了isDefined与get方法的应用,并列举了能从分区中受益的多种操作如cogroup、groupWith、join等。
937

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



