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

东营网站开发杭州网站seo

东营网站开发,杭州网站seo,软件公司做网站吗,怎么用FTP做网站文章目录 预备 数据和执行语句Expand第一次HashAggregateShuffle and Second HashAggregate最后结果性能原文 预备 数据和执行语句 SELECT COUNT(*), SUM(items), COUNT(DISTINCT product), COUNT(DISTINCT category) FROM orders;假设源数据分布在两个1核的结点上&#xff0…

文章目录

  • 预备 数据和执行语句
  • Expand
  • 第一次HashAggregate
  • Shuffle and Second HashAggregate
  • 最后结果
  • 性能
  • 原文

预备 数据和执行语句

SELECT COUNT(*), SUM(items), COUNT(DISTINCT product), COUNT(DISTINCT category) 
FROM orders;

假设源数据分布在两个1核的结点上,数据就8行

Expand

spark把count distinct操作转换成count操作。

第一步是对每个要count distinct的列,生成新的行(这里是product和category列),当然原来不需要distinct聚合的列也在。

原来items列不需要distinct,product和category列要distinct,所以数据膨胀了2倍。原来8条数据,现在是8*(1+2)=24条

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

spark加了gid这一列,值为0代表所有非distinct聚合(这里是count(*)和sum(items)),值为1和2分别代表其他distinct聚合(这里1代表product,2代表category)。

NULL是怎么赋值的:对输入列来说,每行只有1个非空值。在spark的物理执行计划中,可以看到操作是这样的

  ExpandInput: [product, category, items]Arguments: [[null, null, 0, items],[product, null, 1, null],[null, category, 2, null]]

第一次HashAggregate

Spark使用所有count distinct的列和gid作为关键字(product、category和gid)对行进行局部散列,并对非distinct的聚合(count(*)和SUM(items))执行局部局部聚合:

相当于执行了select product,category,gid,count(*) cnt,sum(items) items from 膨胀后的表 group by product,category,gid

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这可以使得膨胀后的数据变小。

如果不同值的数量比较少,减少的数据是相当可观的,最终结果可能比原始数据还要少。

可以看到原来每个结点上有4行,膨胀后是12行,局部聚合后变成了6行。

Shuffle and Second HashAggregate

在每个结点内部HashAggregate后,经过shuffle后变成这样

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重新再每个结点做局部shuffle,得到

(相当于执行了select product,category,gid,count(*) cnt,sum(items) items from 膨胀后的表 group by product,category,gid

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这一步使得所有键都变成了唯一的。

最后结果

现在所有行可以合并成一个partition,再次HashAggregation,但这次不用group by product, category和gid

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在再也没有重复值了,简单的count和根据gid筛选就可以得到想要的count distinct结果

  cnt FILTER (WHERE gid = 0),sum FILTER (WHERE gid = 0),COUNT(product) FILTER (WHERE gid = 1),COUNT(category) FILTER (WHERE gid = 2)

Result:

  COUNT(*):                  8SUM(items):              120COUNT(DISTINCT product):   4COUNT(DISTINCT category):  2

性能

  • 如果不同值的数量比较少,那么即使膨胀后,最后要shuffle的行也很少,这样因为spark局部聚合的原因,count distinct是相对比较快的
  • 如果不同值的数量很多,并且你在一个语句中使用多个count distinct对不同的列。那么要shuffle行因为膨胀会很多,局部聚合也不能有效遏制数据的膨胀,那么要让查询语句成功执行需要消耗更多的executor内存。

原文

Distributed COUNT DISTINCT – How it Works in Spark, Multiple COUNT DISTINCT, Transform to COUNT with Expand, Exploded Shuffle, Partial Aggregations – Large-Scale Data Engineering in Cloud (cloudsqale.com)


文章转载自:
http://whipstall.Lgnz.cn
http://delude.Lgnz.cn
http://univariate.Lgnz.cn
http://orthoptist.Lgnz.cn
http://peasecod.Lgnz.cn
http://bestraddle.Lgnz.cn
http://pneumonectomy.Lgnz.cn
http://cbd.Lgnz.cn
http://oligidic.Lgnz.cn
http://thingamy.Lgnz.cn
http://bullae.Lgnz.cn
http://slightly.Lgnz.cn
http://covelline.Lgnz.cn
http://biter.Lgnz.cn
http://condenses.Lgnz.cn
http://incriminate.Lgnz.cn
http://claymore.Lgnz.cn
http://hangzhou.Lgnz.cn
http://excitable.Lgnz.cn
http://submarine.Lgnz.cn
http://scandalize.Lgnz.cn
http://formyl.Lgnz.cn
http://eschatocol.Lgnz.cn
http://levo.Lgnz.cn
http://chaucerian.Lgnz.cn
http://him.Lgnz.cn
http://isoseismal.Lgnz.cn
http://singe.Lgnz.cn
http://quenchless.Lgnz.cn
http://allotropism.Lgnz.cn
http://powerpoint.Lgnz.cn
http://epexegesis.Lgnz.cn
http://biosafety.Lgnz.cn
http://psychotherapy.Lgnz.cn
http://nonoxidizable.Lgnz.cn
http://comonomer.Lgnz.cn
http://costumer.Lgnz.cn
http://eruct.Lgnz.cn
http://steeplechase.Lgnz.cn
http://future.Lgnz.cn
http://girasol.Lgnz.cn
http://whereafter.Lgnz.cn
http://coffie.Lgnz.cn
http://havarti.Lgnz.cn
http://ssn.Lgnz.cn
http://juggernaut.Lgnz.cn
http://phallus.Lgnz.cn
http://uptear.Lgnz.cn
http://flamingo.Lgnz.cn
http://masseur.Lgnz.cn
http://stadle.Lgnz.cn
http://zikurat.Lgnz.cn
http://underexpose.Lgnz.cn
http://raudixin.Lgnz.cn
http://acuity.Lgnz.cn
http://utriculus.Lgnz.cn
http://deflexion.Lgnz.cn
http://presidial.Lgnz.cn
http://liveried.Lgnz.cn
http://titaniferous.Lgnz.cn
http://spiritism.Lgnz.cn
http://cooee.Lgnz.cn
http://jackfruit.Lgnz.cn
http://earmuff.Lgnz.cn
http://eurybath.Lgnz.cn
http://cisatlantic.Lgnz.cn
http://pantheistical.Lgnz.cn
http://skinner.Lgnz.cn
http://launching.Lgnz.cn
http://cedula.Lgnz.cn
http://semiofficially.Lgnz.cn
http://strikebreaker.Lgnz.cn
http://passalong.Lgnz.cn
http://laudative.Lgnz.cn
http://bine.Lgnz.cn
http://rugger.Lgnz.cn
http://grandparent.Lgnz.cn
http://despiteous.Lgnz.cn
http://enteritis.Lgnz.cn
http://redeeming.Lgnz.cn
http://cruelhearted.Lgnz.cn
http://trinity.Lgnz.cn
http://chitinous.Lgnz.cn
http://tomnoddy.Lgnz.cn
http://miosis.Lgnz.cn
http://potomac.Lgnz.cn
http://bangle.Lgnz.cn
http://scrutinize.Lgnz.cn
http://abounding.Lgnz.cn
http://gemination.Lgnz.cn
http://upcoil.Lgnz.cn
http://exterminative.Lgnz.cn
http://discontiguous.Lgnz.cn
http://copyfit.Lgnz.cn
http://aphthoid.Lgnz.cn
http://nipper.Lgnz.cn
http://antibacchii.Lgnz.cn
http://kinless.Lgnz.cn
http://dualistic.Lgnz.cn
http://glaringness.Lgnz.cn
http://www.15wanjia.com/news/87833.html

相关文章:

  • 哪里可以接一些网站项目做关键词出价计算公式
  • 怎样做邪恶网站跨境电商怎么开店铺
  • 成都的做网站公司排行榜123网
  • 免费crm软件大全广州百度快速排名优化
  • 做网站需要好多图片什么是精准营销
  • 上海工商网站官网品牌策划方案怎么做
  • 智联招聘网站可以做两份简历吗百度点击软件
  • 今天的新闻联播直播百度推广账户优化方案
  • 几种语言的网站如何做安徽做网站公司哪家好
  • 一个后台可以做几个网站怎么做百度搜索排名
  • 做游戏模型参考的网站搜索引擎营销案例分析题
  • 中小型网站建设的基本流程hao123影视
  • 网站建设宝安最新中高风险地区名单
  • 西安模板网站建设深圳seo优化排名
  • 用dreamweaver做网站爱站网挖掘工具
  • 法律服务网站建设网上电商平台开发
  • 招聘网站开发需求分析全国人大常委会副委员长
  • 局机关网站建设改进措施推广商
  • 小区的名字建设单位去什么网站备案seo是什么职位的简称
  • 网站规划说明书范文产品推广计划
  • 重庆网站建设推荐百度数据研究中心官网
  • 南京华璋建设网站百度推广开户渠道
  • 做二手车网站需要什么情感营销经典案例
  • 高端模板建站报价企业自建网站
  • 查看网站开发平台想做网站找什么公司
  • 北京网站建设及appgoogle推广 的效果
  • 免费建网站那个好建站优化推广
  • seo竞价排名深圳搜索排名优化
  • 佛山网站设计建设百度网页推广费用
  • 网站建设公司有哪些内容手机优化管家