spark1.6源码分析
隔壁老杨hongs
1949年我被捕了,第一天我没招,第二天我还是没招,第三天敌人用美人计我招了,第四天我还想招,解放了.
展开
-
spark transform系列__groupByKey
这个操作的作用根据相同的key的所有的value存储到一个集合中的一个玩意. def groupByKey(): RDD[(K, Iterable[V])] = self.withScope { groupByKey(defaultPartitioner(self))} 在 做groupByKey的操作时,由于需要根据key对数据进行重新的分区操作,因此这个操作需要有一个partition...2016-01-29 09:15:58 · 141 阅读 · 0 评论 -
spark transform系列__sortByKey
该 函数主要功能:通过指定的排序规则与进行排序操作的分区个数,对当前的RDD中的数据集按KEY进行排序,并生成一个SHUFFLEdrdd的实例,这个 过程会执行shuffle操作,在执行排序操作前,sortBy操作会执行一次到两次的数据取样的操作,取出RDD中每个PARTITION的部分数据, 并根据进行分区的partition的个数,按key的compare大小把某个范围内的key放到一个指...2016-01-29 09:19:09 · 330 阅读 · 0 评论 -
spark transform系列__reduceByKey
reduceByKey 通过PairRDDFunctions进行的实现,reduceByKey的操作是把两个V类型的值进行处理,并最终返回的还是一个V类型的结果(V类型 就是value的类型).针对一个reduceByKey的操作,需要执行shuffle的操作,也就是说如果包含有reduceByKey时,会生成两 个执行的stage,第一个stage会根据shuffle的partition与分...2016-01-29 09:21:31 · 128 阅读 · 0 评论 -
spark transform系列__sample
Sample是对rdd中的数据集进行采样,并生成一个新的RDD,这个新的RDD只有原来RDD的部分数据,这个保留的数据集大小由fraction来进行控制,这个分析中,不分析sample的两个算法的具体实现,如果后期有必要时,可以分析这两个算法的具体的实现. 首先,先看看sample的实现代码: def sample( withReplacement: Boolean, fract...2016-01-29 09:22:41 · 199 阅读 · 0 评论 -
spark transform系列__mapPartitions
mapPartitions/mapPartitionsWithIndex 这 两个transform中:mapPartitions与map的区别是map中是对每个partition中的iterator执行map操作,对 map过程中的每一条record进行传入的function的处理,而mapPartitions是把partition中整个iterator传给 function进行处理.如果是...2016-01-29 09:24:40 · 278 阅读 · 0 评论