自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

隔壁老杨的专栏

关注大数据,hadoop,hbase,spark,姑娘等相关话题

  • 博客(25)
  • 收藏
  • 关注

原创 spark源码action系列-saveAsHadoopDataset

spark源码分析,spark中分析结果存储hadoop的基础实现函数,spark saveAsTextFile底层实现, spark saveAsHadoopFile底层实现.

2016-01-29 15:33:03 3189

原创 spark源码action系列-reduce

spark源码分析,spark reduce action的实现流程,spark reduce与hadoop的mapreduce中reduce的区别.

2016-01-29 15:29:07 1806

原创 spark源码action系列-foreach与foreachPartition

spark源码分析,spark action中的foreach与foreachPartition的区别,spark foreach的代码实现流程,spark foreachPartition的代码实现流程.

2016-01-29 15:18:27 17438

原创 spark源码action系列-take

spark源码中关于top n的实现,spark action 中的take的实现代码.

2016-01-29 14:17:19 790

原创 spark源码action系列-count

spark源码, spark action count函数功能分析.

2016-01-29 13:48:58 1193

原创 spark源码action系列-collect

spark源码 RDD collect的函数说明

2016-01-29 13:40:01 1293

原创 spark源码action系列-开头部分

这里主要说明下spark中,具体执行任务时,执行的函数入口与spark driver如何得到每个task的返回结果.

2016-01-29 13:10:31 1017

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

spark transform系列__sample

Sample是对rdd中的数据集进行采样,并生成一个新的RDD,这个新的RDD只有原来RDD的部分数据,这个保留的数据集大小由fraction来进行控制,这个分析中,不分析sample的两个算法的具体实现,如果后期有必要时,可以分析这两个算法的具体的实现.首先,先看看sample的实现代码:def sample(    withReplacement: Boolean,    fract...

2016-01-29 09:22:41 199

spark transform系列__reduceByKey

reduceByKey 通过PairRDDFunctions进行的实现,reduceByKey的操作是把两个V类型的值进行处理,并最终返回的还是一个V类型的结果(V类型 就是value的类型).针对一个reduceByKey的操作,需要执行shuffle的操作,也就是说如果包含有reduceByKey时,会生成两 个执行的stage,第一个stage会根据shuffle的partition与分...

2016-01-29 09:21:31 128

spark transform系列__sortByKey

该 函数主要功能:通过指定的排序规则与进行排序操作的分区个数,对当前的RDD中的数据集按KEY进行排序,并生成一个SHUFFLEdrdd的实例,这个 过程会执行shuffle操作,在执行排序操作前,sortBy操作会执行一次到两次的数据取样的操作,取出RDD中每个PARTITION的部分数据, 并根据进行分区的partition的个数,按key的compare大小把某个范围内的key放到一个指...

2016-01-29 09:19:09 330

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

原创 spark transform系列__Coalesce

Coalesce/repartitioncoalesce这个操作是把当前的RDD中的partition根据一个新的传入的parition的个数,对partition中的结果集进行重新组合成一个新的结果集的函数.这个函数需要传入两个参数:参数1:需要重新进行分区的分区个数.参数2:是否执行shuffle操作,默认为false.def coalesce(numPartition

2016-01-28 18:17:34 993

原创 spark transform系列__Cartesian

Cartesian这个操作返回两个RDD的笛卡尔集.如果两个RDD中某一个RDD的结果集为空集时,这个结果集也是一个空集.这个操作不会执行shuffle的操作.def cartesian[U: ClassTag](other: RDD[U]): RDD[(T, U)] = withScope {  new CartesianRDD(sc, this, other)}从上面的

2016-01-28 18:15:50 1698 1

原创 spark transform系列__join

JoinJoin包含有join,fullOuterJoin,leftOuterJoin,rightOuterJoin四种实现,下面先根据join的实现流程进行分析,再对join分析的结果的基础上,最后根据后面三种join的实现,说明下这几种JOIN的差别所在.Join的函数中,需要一个Partitioner的实例,默认是HashPartitioner,join的实现中,是直接通过调用 

2016-01-28 18:11:52 1908

原创 spark transform系列__cogroup

Cogroupcogroup的函数实现:这个实现根据两个要进行合并的两个RDD操作,生成一个CoGroupedRDD的实例,这个RDD的返回结果是把相同的key中两个RDD分别进行合并操作,最后返回的RDD的value是一个Pair的实例,这个实例包含两个Iterable的值,第一个值表示的是RDD1中相同KEY的值,第二个值表示的是RDD2中相同key的值.由于做cogroup的操作

2016-01-28 18:08:49 1950

原创 spark transform系列__aggregateByKey

aggregateByKey这个函数可用于完成对groupByKey,reduceByKey的相同的功能,用于对rdd中相同的key的值的聚合操作,主要用于返回一个指定的类型U的RDD的transform,在这个函数中,需要传入三个参数:参数1:用于在每个分区中,对key值第一次读取V类型的值时,使用的U类型的初始变量,参数2:用于在每个分区中,相同的key中V类型的值合并到参数1创建

2016-01-28 18:07:29 3182

原创 spark transform系列__distinct

Distinct的操作其实是把原RDD进行MAP操作,根据原来的KEY-VALUE生成为KEY,value使用null来替换,并对新生成的RDD执行reduceByKey的操作,这个reduceByKey的操作中,传入的x,y都是null,这个地方执行reduceByKey的函数(下面的红色部分,直接返回传入的第一个值),执行完成reducebykey的操作后,这个时候新的RDD就只相同的ke

2016-01-28 18:05:07 7531

原创 spark transform系列__union

UnionUnion的transform主要是把两个RDD合并成一个RDD的动作,在union的操作中,如果要进行合并的两个rdd的partitioner的算子实例是同一个实例时,表示这两个rdd有相同的分区方法,合并后的RDD为PartitionerAwareUnionRDD实例.否则生成UnionRDD实例. Union的实现代码:def union(other: RDD[T]

2016-01-28 18:01:00 2229

原创 spark transform系列__intersection

这个transform返回的是进行操作的两个RDD中,key-value都相同的所有的数据集的新的RDD.说白了就是把两个RDD中数据完全相同的数据进行保留,不相同的数据直接丢弃掉.这个操作会执行shuffle操作. 实现代码: def intersection(other: RDD[T]): RDD[T] = withScope {这里首先执行对第一个rdd的map操作,执行

2016-01-28 17:58:09 2025

原创 spark transform系列__mapPartitions

mapPartitions/mapPartitionsWithIndex这两个transform中:mapPartitions与map的区别是map中是对每个partition中的iterator执行map操作,对map过程中的每一条record进行传入的function的处理,而mapPartitions是把partition中整个iterator传给function进行处理.如果是map操

2016-01-28 17:55:16 1119

原创 spark transform系列__sample

Sample是对rdd中的数据集进行采样,并生成一个新的RDD,这个新的RDD只有原来RDD的部分数据,这个保留的数据集大小由fraction来进行控制,这个分析中,不分析sample的两个算法的具体实现,如果后期有必要时,可以分析这两个算法的具体的实现.首先,先看看sample的实现代码:def sample(    withReplacement: Boolean,    fr

2016-01-28 17:45:27 5165 1

原创 spark transform系列__reduceByKey

reduceByKey通过PairRDDFunctions进行的实现,reduceByKey的操作是把两个V类型的值进行处理,并最终返回的还是一个V类型的结果(V类型就是value的类型).针对一个reduceByKey的操作,需要执行shuffle的操作,也就是说如果包含有reduceByKey时,会生成两个执行的stage,第一个stage会根据shuffle的partition与分区的算子,

2016-01-28 17:22:25 1690

原创 spark transform系列__sortByKey

该函数主要功能:通过指定的排序规则与进行排序操作的分区个数,对当前的RDD中的数据集按KEY进行排序,并生成一个SHUFFLEdrdd的实例,这个过程会执行shuffle操作,在执行排序操作前,sortBy操作会执行一次到两次的数据取样的操作,取出RDD中每个PARTITION的部分数据,并根据进行分区的partition的个数,按key的compare大小把某个范围内的key放到一个指定的par

2016-01-28 17:14:15 1237

原创 spark transform系列__groupByKey

这个操作的作用根据相同的key的所有的value存储到一个集合中的一个玩意.def groupByKey(): RDD[(K, Iterable[V])] = self.withScope {  groupByKey(defaultPartitioner(self))}在做groupByKey的操作时,由于需要根据key对数据进行重新的分区操作,因此这个操作需要有一个partiti

2016-01-28 11:35:54 1295

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除