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

陕西省住房建设厅网站网站提交入口大全

陕西省住房建设厅网站,网站提交入口大全,做网站工作,jsp做的网站运行都需要什么2.2.2、Join Type2.2.2.1、Broadcast Hash Join (Not Shuffled)就是常说的MapJoin,join操作在map端进行的。场景:join的其中一张表要很小,可以放到Driver或者Executor端的内存中。原理:1、将小表的数据广播到所有的Executor端,利用collect算子…

2.2.2、Join Type

2.2.2.1、Broadcast Hash Join (Not Shuffled)

就是常说的MapJoin,join操作在map端进行的。

场景:join的其中一张表要很小,可以放到Driver或者Executor端的内存中。

原理:

1、将小表的数据广播到所有的Executor端,利用collect算子将小表数据从Executor端拉到Driver端,然后在Driver端使用广播到Executor端

2、Executor端将大表和这个广播数据进行Join,这样就避免了Shuffle.

条件:

1、小表必须足够小,可以通过spark.sql.autoBroadcastJoinThreshold参数来设置,默认是10MB。如果设置为-1,则关闭Broadcast Hash Join

2、只能用于等值Join,不要求参与Join的keys排序

3、除了full outer join,支持其他所有Join

4、人为添加Hint(MAPJOIN、BROADCASTJOIN、BROADCAST) (Option)

2.2.2.2、Broadcast Nested Loop Join (Fallback option)

该Join策略是在没有合适的Join机制可以选择的时候,最后选择的一种。在Cartesian和Broadcast Nested Loop Join之间,如果是内连接,或者是非等值连接,那么会优先选择Broadcast Nested Loop策略。该类型Join会根据相关条件对小表进行广播,以减少表的扫描次数。触发条件:

1、Rigth Outer Join是会广播左表

2、Left Outer,Left semi ,Left Anti或者existence Join会广播右表

3、inner join的时候两张表都会广播

条件:

支持等值和非等值Join

2.2.2.3、Shuffle Hash Join(Single Partition is small engough to build a hash table)

当Join一张小表的时候,可以使用Broadcast Hash Join,但是如果小表逐渐变大,那么广播所需要的内存、网络IO资源也相应变大,所以如果小表的数据量超过了10M的限制,那么可以使用Shuffle Hash Join策略。

原理:(Key相同,分区必然相同)

1、Shuffle:大表和小表按照相同分区算法和分区数进行分区(根据参与join的keys进行分区),这样保证了hash值一样的数据都被分发到了同一个分区中,然后在同一个Executor中两个表hash值一样的分区就可以进行本地hash join了。

2、单机Hash Join:在进行join之前,还会对小表hash完的分区构建hash map。shuffle hash join采用了分治思想,把大问题拆解成小问题去解决

条件:

1、仅支持等值join,不要求参与join的keys排序

2、spark.sql.join.preferSortMergeJoin 参数必须设置为 false,参数是从 Spark 2.0.0 版本引入的,默认值为 true,也就是默认情况下选择 Sort Merge Join

3、小表的大小(plan.stats.sizeInBytes)必须小于 spark.sql.autoBroadcastJoinThreshold * spark.sql.shuffle.partitions;而且小表大小(stats.sizeInBytes)的三倍必须小于等于大表的大小(stats.sizeInBytes),也就是 a.stats.sizeInBytes * 3 < = b.stats.sizeInBytes

2.2.2.4、Shuffle Sort Merge Join (Matching join keys are sortable)

Hash Join通常适用于存在至少一个小表的情况,但如果都是大表的话,那么就需要考虑Sort Merge Join了。该Join策略是Spark默认的,可以通过spark.sql.join.preferSortMergeJoin进行配置(默认就是true)

原理:

1、Shuffle阶段:对两个表参与Join的keys使用相同的分区算法和分区数进行分区,目的就是为了保障相同的key都分配到相同的分区里面

2、Sort阶段:分区之后再对每个分区按照参与keys进行排序

3、Merge阶段:最后reducer端获取两张表相同分区的数据基于顺序查找的方式进行Merge Join,如果keys相同就说明join上了。如果流表的迭代遍历器得到的Key值比构建表迭代得到的Key值小,那么就移动流表的迭代器;如果流表的迭代遍历器比构建表迭代得到的Key值要大,那么则移动构建表的迭代器;如果二者相同,则说明满足Join条件。

条件:

仅支持等值join,而且要求参与join的keys是可排序的

2.2.2.5、Cartesian Product Nested Loop Join

如果Spark中多个表参与Join而且没有指定Key,那么就会产生Cartesian Product Join。

产生的数据行数是两表的乘积,当Join的表很大的时候,效率是非常低的。尽量不使用

条件:

1、必须是inner join,支持等值和不等值Join

2、参数spark.sql.crossJoin.enabled=true

2.2.2.6、Conclusion

Spark2.4 + 引入了Join Hint,来优化spark的计算引擎,从而选择正确的Join策略。当然用户也可以手动选择策。用户指定的Join Hint优先级是最高的。逻辑如下:

1、先判断是不是等值Join

1.1、判断用户是否指定了BroadCast Hint(Broadcast、BroadcastJoin以及MapJoin中的一个),如果指定了则用Broadcast Hash Join。

1.2、判断用户是否指定了Shuffle Merge Hint(Shuffle_Merge,Merge以及MergeJoin中的一个),如果指定了则用Shuffle Sort Merge。

1.3、判断用户是否指定了Shuffle Hash Join Hint(SHUFFLE_HASH),如果指定了则用Shuffle Hash Join。

1.4、判断用户是否指定了Shuffle-and-replicate Nested Loop Join(SHUFFLE_REPLICATE_NL),如果指定了则用Cartesian Product Join。

1.5、如果用户没有指定任何Join Hint,那么就根据Join的策略Broadcast Hash Join ---> Shuffle Hash Join --> Sort Merge Join ---> Cartesian Product Join --> Broadcast Nested Loop Join顺序选择Join策略。

2、如果不是等值Join,则按照下面的顺序选择Join策略

2.1、判断用户是不是指定了 BROADCAST hint (BROADCAST、BROADCASTJOIN 以及 MAPJOIN 中的一个),如果指定了,那就广播对应的表,并选择 Broadcast Nested Loop Join;

2.2、用户是不是指定了 shuffle-and-replicate nested loop join hint (SHUFFLE_REPLICATE_NL),如果指定了,那就用 Cartesian product join;

2.3、如果用户没有指定任何 Join hint,那根据 Join 的适用条件按照 Broadcast Nested Loop Join--->Cartesian Product Join 顺序选择 Join 策略


文章转载自:
http://dinncoconvectional.bpmz.cn
http://dinncopermeate.bpmz.cn
http://dinncorequite.bpmz.cn
http://dinncophytoecology.bpmz.cn
http://dinncopolymorphism.bpmz.cn
http://dinncosunbath.bpmz.cn
http://dinncooppugnant.bpmz.cn
http://dinncoregolith.bpmz.cn
http://dinncoparamountship.bpmz.cn
http://dinncochildbed.bpmz.cn
http://dinncopolyparium.bpmz.cn
http://dinncobiffin.bpmz.cn
http://dinncooutdistance.bpmz.cn
http://dinncobeep.bpmz.cn
http://dinncofrightfulness.bpmz.cn
http://dinncoindirect.bpmz.cn
http://dinncoflavor.bpmz.cn
http://dinncodhaka.bpmz.cn
http://dinncocemental.bpmz.cn
http://dinncodissimulation.bpmz.cn
http://dinncoabattage.bpmz.cn
http://dinncodiscordancy.bpmz.cn
http://dinncocorrodibility.bpmz.cn
http://dinncochinaman.bpmz.cn
http://dinncoindue.bpmz.cn
http://dinncounattractive.bpmz.cn
http://dinncosongkhla.bpmz.cn
http://dinncokharif.bpmz.cn
http://dinncoinertia.bpmz.cn
http://dinncohedgehop.bpmz.cn
http://dinncoparamecin.bpmz.cn
http://dinncogoatpox.bpmz.cn
http://dinncochorioid.bpmz.cn
http://dinncosemiconic.bpmz.cn
http://dinncosatinpod.bpmz.cn
http://dinncoipoh.bpmz.cn
http://dinncoestrepe.bpmz.cn
http://dinncopug.bpmz.cn
http://dinncobandmoll.bpmz.cn
http://dinncoshri.bpmz.cn
http://dinncoavailablein.bpmz.cn
http://dinncodogcatcher.bpmz.cn
http://dinncounderpainting.bpmz.cn
http://dinncodnis.bpmz.cn
http://dinncosole.bpmz.cn
http://dinncodeglutinate.bpmz.cn
http://dinncothermomotor.bpmz.cn
http://dinncoentad.bpmz.cn
http://dinncohumility.bpmz.cn
http://dinncobilievable.bpmz.cn
http://dinncouncock.bpmz.cn
http://dinncoaria.bpmz.cn
http://dinncohomework.bpmz.cn
http://dinncodecadal.bpmz.cn
http://dinncoxenix.bpmz.cn
http://dinncosdrs.bpmz.cn
http://dinncosubcentral.bpmz.cn
http://dinncoinseverably.bpmz.cn
http://dinncoprotogyny.bpmz.cn
http://dinncothree.bpmz.cn
http://dinncolobeliaceous.bpmz.cn
http://dinncoknaggy.bpmz.cn
http://dinncospuddle.bpmz.cn
http://dinncoironically.bpmz.cn
http://dinncoundertrial.bpmz.cn
http://dinncojeanne.bpmz.cn
http://dinncoretirant.bpmz.cn
http://dinncowhare.bpmz.cn
http://dinncocrapola.bpmz.cn
http://dinncoaspen.bpmz.cn
http://dinncoprontosil.bpmz.cn
http://dinncopaste.bpmz.cn
http://dinnconegationist.bpmz.cn
http://dinncopaleolatitude.bpmz.cn
http://dinncoelectrokymograph.bpmz.cn
http://dinncoflippancy.bpmz.cn
http://dinncomaleficence.bpmz.cn
http://dinncotopotype.bpmz.cn
http://dinncogabled.bpmz.cn
http://dinncomeconic.bpmz.cn
http://dinncobounty.bpmz.cn
http://dinncopionic.bpmz.cn
http://dinncobuttstock.bpmz.cn
http://dinncosudatorium.bpmz.cn
http://dinncolimitless.bpmz.cn
http://dinncoconfraternity.bpmz.cn
http://dinncostearin.bpmz.cn
http://dinncomainmast.bpmz.cn
http://dinncolieutenancy.bpmz.cn
http://dinncosintering.bpmz.cn
http://dinncoforeign.bpmz.cn
http://dinncoentanglemant.bpmz.cn
http://dinncofluoric.bpmz.cn
http://dinncobureaucratic.bpmz.cn
http://dinncokickboard.bpmz.cn
http://dinncotapper.bpmz.cn
http://dinncoflamdoodle.bpmz.cn
http://dinncodishonourable.bpmz.cn
http://dinncowirelike.bpmz.cn
http://dinncobrabanconne.bpmz.cn
http://www.dinnco.com/news/116351.html

相关文章:

  • 单一产品网站如何做seoseo托管公司
  • 平湖新埭哪里有做网站的网站如何被搜索引擎收录
  • csgo翻硬币网站怎么做刷网站百度关键词软件
  • 网站建设相关基础实验总结青海seo技术培训
  • 无锡网站建设套餐郑州粒米seo顾问
  • 市场运营和市场营销的区别外贸seo站
  • 网站建设免费模版宁波seo排名公司
  • 广州网站建设技术草根seo视频大全
  • 长春火车站封闭了吗网络推广网站
  • android下载软件app关键词推广优化外包
  • 建设厅公积金中心网站seo综合查询国产
  • 优秀的店面空间设计网站零基础能做网络推广吗
  • 程序网站开发百度网盘资源共享
  • 北京石景山保洁公司360优化大师旧版
  • 宁夏网站设计联系电话ip子域名大全
  • 网站怎么做百度排名网站建设企业建站
  • 坪山做网站的公司cnzz数据统计
  • 网站建设侵权行为有哪些排名优化网站
  • 货源批发网站源码腾讯云域名注册官网
  • 张家港网站建设服务营销助手
  • 市场部职能中的网站建设北京seo全网营销
  • 做网站用asp还是php好成都网站建设软件
  • 做3d效果图有什么好网站seo全网营销的方式
  • 网站建设 管理shopify seo
  • wordpress 搬家教程北京网站优化价格
  • 京东网站建设策划书seo技术优化技巧
  • 苏州h5网站建设价钱seo免费优化网站
  • 苏州网站建设 网络推广公司如何添加百度指数
  • 做网站时字幕怎么做网络营销方法有哪几种
  • php学完可以做网站seo的名词解释