Hivesort by
和order by
命令用于按排序顺序获取数据。
例如:
排序方式
hive> SELECT E.EMP_ID FROM Employee E SORT BY E.empid;
订购方式
hive> SELECT E.EMP_ID FROM Employee E order BY E.empid;
Hive SQL 中的查询sort by
和查询有什么区别?order by
Hivesort by
和order by
命令用于按排序顺序获取数据。
例如:
排序方式
hive> SELECT E.EMP_ID FROM Employee E SORT BY E.empid;
订购方式
hive> SELECT E.EMP_ID FROM Employee E order BY E.empid;
Hive SQL 中的查询sort by
和查询有什么区别?order by
Hive 支持 SORT BY 对每个 reducer 的数据进行排序。“order by”和“sort by”之间的区别在于前者保证输出中的总顺序,而后者只保证reducer中行的排序。如果有多个 reducer,“排序依据”可能会给出部分排序的最终结果。
注意:对于单列的 SORT BY 和 CLUSTER BY 之间的区别可能会造成混淆。不同之处在于 CLUSTER BY 按字段分区,而 SORT BY 如果有多个 reducer 随机分区,以便在 reducer 之间均匀分布数据(和负载)。
基本上,每个reducer中的数据都会按照用户指定的顺序进行排序。下面的例子显示
SELECT 键,值 FROM src SORT BY 键 ASC,值 DESC
SORT BY
在典型的 SQL 实现中不存在。详细信息大概可以在 Hive 文档中找到,但Gaurang 的回答表明这SORT BY
是 per-reducer。
ORDER BY
在(据我所知)所有 SQL 实现中。维基百科有一篇解释它的文章。
SQL 中没有像“sortBy”这样的东西
为了在 SQL 中对数据进行排序,ORDER BY
使用了该子句,它允许您对结果集中的记录进行排序。而且它只能在SELECT
语句中使用。
例如:
SELECT columns FROM tables WHERE predicates ORDER BY column ASC/DESC;
该ORDER BY
子句根据指定的列对结果集进行排序。
ASC
表示升序。
DESC
表示降序。
默认是ASC