美文网首页
(3)group by distinct union

(3)group by distinct union

作者: 顽皮的石头7788121 | 来源:发表于2019-07-13 11:17 被阅读0次

    (1)distinct

    Select  count(distcint uid) from TB
    count distinct 容易产生数据倾斜问题,使用了distinct,导致在map端的combine无法合并重复数据,hive针对count(distinct xxx)只产生一个reduce。造成了所有map端传来的数据都在一个tasks中执行,成为了性能瓶颈。
    改进为 用group by 代替count distinct
    Select count(1) from (Select distinct uid from TB)x
    

    (2)group by
    select后面的非聚合列必须出现在group by中,group by 出现数据倾斜概率很少,因为mapreduce中map结束后会有combine by操作做一些聚合。
    (3)union

    相关文章

      网友评论

          本文标题:(3)group by distinct union

          本文链接:https://www.haomeiwen.com/subject/yyvmhctx.html