HiveDistinct的实现原理

更新时间:2023-07-11 19:07:20 阅读: 评论:0

HiveDistinct的实现原理
科技环保
Distinct 的实现原理
四的四字成语
女生短头发lect dealid,count(distinct uid) num from order group by dealid;
当只有⼀个distinct字段时,如果不考虑Map阶段的Hash GroupBy,只需要将GroupBy字段和Distinct字段组合为map输出key,利⽤mapreduce的排序,同时将GroupBy字段作 为reduce的key,在reduce阶段保存LastKey即可完成去重。
如果有多个distinct字段呢,如下⾯的SQL:如何清除上网记录
英雄辈出
卓文君简介lect dealid,count(distinct uid),count(distinct date)from order group by dealid;
实现⽅式有两种:
(1)如果仍然按照上⾯⼀个distinct字段的⽅法,即下图这种实现⽅式,⽆法跟据uid和date分别排序,也就⽆法通过LastKey去重,仍然需要在reduce阶段在内存中通过Hash去重小说图片
(2)第⼆种实现⽅式,可以对所有的distinct字段编号,每⾏数据⽣成n⾏数据,那么相同字段就会分别排序,这时只需要在reduce阶段记录LastKey即可去重。这种实现⽅式很好的利⽤了MapReduce的排序,节省了reduce阶段去重的内存消耗,但是缺点是增加了shuffle 的数据量。需要注意的是,在⽣成reduce value时,除第⼀个distinct字段所在⾏需要保留value值,其余distinct数据⾏value字段均可为空。干炒牛河的做法

本文发布于:2023-07-11 19:07:20,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1091218.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字段   阶段   需要   实现
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图