请有人告诉我Hive SQL中sort by
和order by
查询之间的区别
答案 0 :(得分:14)
Hive支持SORT BY,它对每个reducer的数据进行排序。 “order by”和“sort by”之间的区别在于前者保证输出中的总顺序,而后者仅保证在reducer中排序。如果有多个减速器,“排序依据”可能会给出部分有序的最终结果。
注意:单个SORT BY和CLUSTER BY之间的区别可能会令人困惑。不同之处在于CLUSTER BY按字段分区,如果有多个reducers分区,则为SORT BY,以便在reducers之间统一分配数据(和加载)。
基本上,每个reducer中的数据将根据用户指定的顺序进行排序。以下示例显示
SELECT键,值FROM src SORT BY键ASC,值DESC
答案 1 :(得分:4)
SORT BY
。可能会在Hive文档中找到详细信息,但Gaurang's answer表示SORT BY
是每个reducer。
ORDER BY
(据我所知)是所有SQL实现。维基百科有an article explaining it。
答案 2 :(得分:0)
SQL
中没有类似“sortBy”的东西对于SQL中的数据排序,使用ORDER BY
子句,允许您对结果集中的记录进行排序。
它只能在SELECT
语句中使用。
e.g:
SELECT columns FROM tables WHERE predicates ORDER BY column ASC/DESC;
ORDER BY
子句根据指定的列对结果集进行排序。
ASC
表示升序。
DESC
表示降序。
默认为ASC