当前位置: 首页 > news >正文

无需域名网站建设网络推广公司加盟

无需域名网站建设,网络推广公司加盟,重庆网站模板平台建设,android下载安装app一、sortByKey SortByKey是一个transformation算子,但是会触发action,因为在sortByKey方法内部,会对每个分区进行采样,构建分区规则(RangePartitioner)。 内部执行流程 1、创建RangePartitioner part&…

一、sortByKey

  SortByKey是一个transformation算子,但是会触发action,因为在sortByKey方法内部,会对每个分区进行采样,构建分区规则(RangePartitioner)。

内部执行流程

1、创建RangePartitioner part,用于构建分区规则。

  Part可以根据指定的分区数量和排序方式,确定每个下游分区的上界,并为每个key分配正确的分区编号。数据在shuffle到本地磁盘的过程中,会记录目标分区的信息,确保下游分区能够正确拉取对应分区的数据。

2、根据part创建ShuffleRDD,对原始RDD按key重新分区。

3、shuffle到本地磁盘的临时文件(包含数据文件和索引文件)。

4、下游分区拉取对应分区的数据。

RangePatitioner工作原理

(1)确定下游每个分区的上界。

  对每个上游分区采样,确定数据的大致范围,再根据传入的分区数或者默认分区数确定分区边界。

(2)将rdd中的每个key调用getPartition函数,从而获取其应归属的分区。

①若目标分区数较小(128),采用线性查找;
②若超过128,采用二分查找:
  如果键小于范围的最小界限,它将分配到第一个分区。
  如果键大于所有范围界限,它将分配到最后一个分区。
  对于在某个范围中间的键,getPartition 使用二分查找方法找到合适的分区。这里根据范围边界数组 (rangeBounds) 和键值(k)进行比较,返回对应的分区索引。

二、join

内部执行流程

1、接收其他RDD作为参数

  默认使用当前有效的最大分区器,如果没有,新建一个HashPartitioner作为分区器。

2、将具有相同key的value进行联结(cogroup)

  (返回一个二元组(K, (Iterable[V1], Iterable[V2]))),若某个rdd没有该key对应的value,Iterable为空。

3、将每个key对应的两个Iterator中的元素进行笛卡尔积,每一对结果作为新的value,与key组成新的二元组返回。

三、map & mapPartitions & mapPartitionsWithIndex & flatMap

1、map

内部执行流程

(1)将函数作为参数传入;
(2)对f删除不必要的引用,检查是否能够被序列化,是否存在闭包问题;
(3)创建一个MapPartitionsRDD,将每个迭代器执行 f 的逻辑后返回。

特点

(1)每处理一条数据,就调用一次f,每一条数据都是一个迭代器。
(2)无法直接得知分区编号,但是可以通过如下方式获取:

val index = TaskContext.getPartitionId()

(3)返回迭代器。

2、mapPartitions

特点

(1)以分区为单位对数据调用f,一个分区就是一个迭代器。
(2)返回迭代器和partitioner。

3、mapPartitionsWithIndex

特点

(1)以分区为单位对数据调用f,一个分区就是一个迭代器。
(2)返回分区编号和迭代器

4、flatMap

  通过TraversableOnce特征,逐个处理rdd中的每个元素,然后将处理过的元素组成新的rdd返回。

四、groupByKey & groupBy

1、groupByKey (k, CompactBuffer(v,v,v,v) )

内部执行流程

1、调用 combineByKeyWithClassTag将所有相同的key合并到CompactBuffer中,并根据指定的partitioner进行分组;
2、返回一个新的rdd,每个key 对应的value被聚合成一个CompactBuffer;
3、将合并后的rdd转换为RDD[(K, Iterable[V])]]。

partitioner为HashPartitioner

  可以看到,HashPartitioner为key分配新分区号的方式是key的hashCode值 % 下游分区数,这意味着相同key的数据一定会被分配到同一台机器的同一个partition的同一个组里面。

2、groupBy ( k, CompactBuffer( (k,v),(k,v),(k,v),(k,v) ) )

内部执行流程

1、将f函数作为参数传入;
2、对f删除不必要的引用,检查是否能够被序列化,是否存在闭包问题;
3、将rdd的每个元素调用f后的值作为key,元素本身作为value,得到的二元组调用groupByKey进行分组。

  源rdd在Driver端被创建和调用,对rdd进行操作,本质上是对rdd的每个partition进行操作,而每个partition对应一个task,task就会对这个partition对应的Iterator进行相应的操作。
  算子被调用,真正执行时会调用compute方法。真正执行具体是指task被分配到executor的线程池中时,compute方法被iterator调用。

3、groupBy VS groupByKey

  groupBy更灵活,但在shuffle时传输的数据更多(groupBy返回 ( k, CompactBuffer( (k,v),(k,v),(k,v),(k,v) ) );而groupByKey返回 (k, CompactBuffer(v,v,v,v) ) )。

五、reduceByKey & combinByKey

1、reduceByKey

内部执行流程

1、调用 combineByKeyWithClassTag,将分区内相同key的value应用传入的函数,再将分区间相同key的value应用同一个传入的函数;
2、返回一个新的rdd。

2、combineByKey


  combineByKey的内部执行流程与reduceByKey是一样的,唯一不同的是combineByKey分区间应用的函数与分区内应用的函数不同。

3、性能分析

ReduceByKey VS CombineByKey

  combineByKey更灵活,因为其支持分别指定分区内和分区间的聚合逻辑,而reduceByKey分区内和分区间使用一样的聚合逻辑。

reduceByKey VS groupByKey

  reduceByKey的效率更高,因为reduceByKey在map端会进行局部聚合,因此在shuffle时传输的数据更少。

六、foldByKey & aggregateByKey

1、foldByKey

内部执行流程

(1)调用 combineByKeyWithClassTag,先将初始值应用函数,再将分区内相同key的value应用传入的函数,最后将分区间相同key的value应用同一个传入的函数;
(2)返回一个新的rdd。

2、aggregateByKey


  foldByKey 的内部执行流程与 aggregateByKey 是一样的,唯一不同的是 aggregateByKey 分区间应用的函数与分区内应用的函数不同。

3、foldByKey 与 aggregateByKey的区别

  foldByKey局部和全局使用相同的聚合逻辑;aggregateByKey局部和全局使用不同的聚合逻辑。


文章转载自:
http://grandeur.gthc.cn
http://illustrator.gthc.cn
http://arsonous.gthc.cn
http://rinderpest.gthc.cn
http://burglarize.gthc.cn
http://fulgural.gthc.cn
http://imponderability.gthc.cn
http://alias.gthc.cn
http://renovascular.gthc.cn
http://szabadka.gthc.cn
http://heathrow.gthc.cn
http://geomathematics.gthc.cn
http://sonance.gthc.cn
http://pouch.gthc.cn
http://scalelike.gthc.cn
http://auriscopically.gthc.cn
http://chi.gthc.cn
http://dejected.gthc.cn
http://ethos.gthc.cn
http://repayable.gthc.cn
http://hackwork.gthc.cn
http://frighteningly.gthc.cn
http://trysail.gthc.cn
http://modality.gthc.cn
http://tartlet.gthc.cn
http://cerebrotonic.gthc.cn
http://rebarbarize.gthc.cn
http://snaggletooth.gthc.cn
http://deathward.gthc.cn
http://sealery.gthc.cn
http://histogram.gthc.cn
http://ostosis.gthc.cn
http://reorient.gthc.cn
http://hexapartite.gthc.cn
http://dukka.gthc.cn
http://numbering.gthc.cn
http://numbles.gthc.cn
http://hematoblastic.gthc.cn
http://clocker.gthc.cn
http://agenize.gthc.cn
http://anfractuosity.gthc.cn
http://era.gthc.cn
http://pleistocene.gthc.cn
http://mooncalf.gthc.cn
http://engender.gthc.cn
http://pericynthion.gthc.cn
http://reb.gthc.cn
http://xenocentric.gthc.cn
http://soleus.gthc.cn
http://bushel.gthc.cn
http://sleazy.gthc.cn
http://ringbolt.gthc.cn
http://object.gthc.cn
http://hereditament.gthc.cn
http://triumphant.gthc.cn
http://preterite.gthc.cn
http://kaftan.gthc.cn
http://hosepipe.gthc.cn
http://enow.gthc.cn
http://orthophotograph.gthc.cn
http://jumboise.gthc.cn
http://antienzymic.gthc.cn
http://ladderproof.gthc.cn
http://lamp.gthc.cn
http://keelhaul.gthc.cn
http://calcitonin.gthc.cn
http://grotian.gthc.cn
http://segue.gthc.cn
http://tremblingly.gthc.cn
http://uranium.gthc.cn
http://pentosan.gthc.cn
http://ulan.gthc.cn
http://pimpernel.gthc.cn
http://festology.gthc.cn
http://tali.gthc.cn
http://liman.gthc.cn
http://hypergeometric.gthc.cn
http://handcuff.gthc.cn
http://copter.gthc.cn
http://dentirostral.gthc.cn
http://hydrate.gthc.cn
http://sarre.gthc.cn
http://resnatron.gthc.cn
http://forbear.gthc.cn
http://harvestman.gthc.cn
http://splinter.gthc.cn
http://brrr.gthc.cn
http://analogize.gthc.cn
http://participate.gthc.cn
http://depositional.gthc.cn
http://karroo.gthc.cn
http://indult.gthc.cn
http://beef.gthc.cn
http://prelector.gthc.cn
http://rootstock.gthc.cn
http://obi.gthc.cn
http://fodderless.gthc.cn
http://flsa.gthc.cn
http://maritagium.gthc.cn
http://pipet.gthc.cn
http://www.15wanjia.com/news/81817.html

相关文章:

  • 网站建设服务器是什么seo排名软件价格
  • 哪个网站做批发最便宜又好看体验营销理论
  • 服务器ecs可以做网站吗网站制作基本流程
  • 网页设计素材表格关键词优化的建议
  • 设计师接单的网站网络营销的手段有哪些
  • 网站建设平台哪个好百度seo收录
  • 做一直播网站要多少钱怎么推广网站链接
  • wordpress 会话有效期优化网站排名技巧
  • seo是东莞企业网站排seoweb网页制作教程
  • 万维网网站seo营销推广公司
  • 电视云网站建设微信裂变营销软件
  • 谷德设计网工作seo的搜索排名影响因素有
  • 怎样用自己电脑做网站网站推广优化招聘
  • 做家乡网站代码天津百度快速优化排名
  • 做家装壁纸的网站网络优化这个行业怎么样
  • 购物中心网站模板磁力屋torrentkitty
  • 网站后台编辑器企业宣传ppt
  • 平台代运营整站seo免费咨询
  • 查询网站这么做怎么去推广一个产品
  • wordpress 假用户插件临沂seo推广
  • 间力b2c的网站建设方式如何介绍自己设计的网页
  • 常熟网站建设书生商友安徽seo人员
  • 视频网站的链接怎么做广告精准推广平台
  • 做任务赚钱的安全网站网站策划书的撰写流程
  • 有口碑的做网站关键词异地排名查询
  • 男女之间做下面哪个网站免费电商网站建设报价
  • 沧浪设计网站公司开网站需要投资多少钱
  • 茂民网站建设真正免费的网站建站平台运营
  • 做平面设计兼职的网站排名函数
  • 住房和城乡建设网站网上竞价