Hive中group by自动排序

Hive中group by自动排序,第1张

Hive中group by自动排序

为了增加每天的工作量,现在开辟了一个新的模块。叫做每天一个无用的小常识。

        为什么是无用的?其实并不是无用,就像手工耿做的那些东西,看着没用把,但是每一个都是耗费很多功夫的,就像那个倒立洗衣机,脑瓜蹦什么的,虽然挺无用的,但是确实是一种新意,不仅有了粉丝,还有了后面更多的作品,比如上次看到的那个好像是钢琴烧烤车。那个作品就挺厉害。

今天分享小知识:

group by会进行排序吗?

结果:会

分析:

        我们这个sql语句,根据名字分组求ftime的总合。其实这个代码就是前两篇博客里面用到的那个group by别名报错的那个数据。

        explain可以让我们预知hive sql转换为mr算子的过程,有Map 和 reduce两个过程。同时explain里面的信息不仅仅是语句执行的情况,还有输入和输出之类的等等。

        关于上面的问题,为什么group by后我们不用sort by或者order by都会进行排序,下面来看看整个执行的信息。

        

第二个图片中,我们可以看到sort order:+

表示进行排序,并且按照升序排序。

因为按照升序排列,所以最后的输出结果应该是string小的在最前面(比较的是A和B)

为什么不比较sum(ftime)? 我们可以看到 key expressions:_col0(type:string)

比较的是字符串类型,而sum()是int 类型。

总结:

group by会自动根据我们分组的字段进行排序,并且默认是升序排列。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5690196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存