hive order by是升序还是降序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive order by是升序还是降序相关的知识,希望对你有一定的参考价值。

参考技术A Hive基于HADOOP来执行分布式程序的,和普通单机程序不同的一个特点就是最终的数据会产生多个子文件,每个reducer节点都会处理partition给自己的那份数据产生结果文件,这导致了在HADOOP环境下很难对数据进行全局排序,如果在HADOOP上进行order by全排序,会导致所有的数据集中在一台reducer节点上,然后进行排序,这样很可能会超过单个节点的磁盘和内存存储能力导致任务失败。一种替代的方案则是放弃全局有序,而是分组有序,比如不求全百度最高的点击词排序,而是求每种产品线的最高点击词排序。使用order by会引发全局排序select * from baidu_click order by click desc;
使用distribute和sort进行分组排序
select * from baidu_click distribute by product_line sort by click desc;
distribute by + sort by就是该替代方案,被distribute by设定的字段为KEY,数据会被HASH分发到不同的reducer机器上,然后sort by会对同一个reducer机器上的每组数据进行局部排序。

SQL-ORDER BY 多字段排序(升序降序)

ORDER BY _column1, _column2; /* _column1升序,_column2升序 */
 
ORDER BY _column1, _column2 DESC; /* _column1升序,_column2降序 */
 
ORDER BY _column1 DESC, _column2 ; /* _column1降序,_column2升序 */
 
ORDER BY _column1 DESC, _column2 DESC; /* _column1降序,_column2降序 */

以上是关于hive order by是升序还是降序的主要内容,如果未能解决你的问题,请参考以下文章

SQL-ORDER BY 多字段排序(升序降序)

python:mysql之ORDER BY 语句

order by 升序排序是null字段如何排在最后?

MySQL ORDER BY 两个子句(降序和升序)

Hive学习 排序:order bysort bydistribute bycluster by

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?