概述
为了增加每天的工作量,现在开辟了一个新的模块。叫做每天一个无用的小常识。
为什么是无用的?其实并不是无用,就像手工耿做的那些东西,看着没用把,但是每一个都是耗费很多功夫的,就像那个倒立洗衣机,脑瓜蹦什么的,虽然挺无用的,但是确实是一种新意,不仅有了粉丝,还有了后面更多的作品,比如上次看到的那个好像是钢琴烧烤车。那个作品就挺厉害。
今天分享小知识:
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会自动根据我们分组的字段进行排序,并且默认是升序排列。
最后
以上就是幸福摩托为你收集整理的Hive中group by自动排序的全部内容,希望文章能够帮你解决Hive中group by自动排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复