HiveQL ORDER BY和SORT BY子句
通过使用HiveQL的ORDER BY和SORT BY子句,我们可以对列进行排序。它可以返回结果集以升序或降序的方式排序。在这里,我们将对下表的记录执行这些子句:
HiveQL – ORDER BY 语句
在HiveQL中,ORDER BY子句对查询结果集进行完整排序。因此,所有数据都会通过一个单独的reducer进行处理。对于执行大数据集的排序可能需要很长时间。然而,我们可以使用LIMIT来减少排序时间。
Hive中ORDER BY子句的示例
让我们通过使用ORDER BY子句对数据进行排序来看一个示例。
- 选择我们要创建表的数据库。
hive> use hiveql;
- 现在,使用以下命令创建一个表:
hive> create table emp (Id int, Name string , Salary float, Department string)
row format delimited
fields terminated by ',' ;
- 将数据加载到表中。
hive> load data local inpath '/home/codegyani/hive/emp_data' into table emp;
- 现在,使用以下命令按降序获取数据:
hive> select * from emp order by salary desc;
在这里,我们得到了期望的结果。
HiveQL – SORT BY子句
HiveQL的SORT BY子句是ORDER BY子句的一种替代方式。它对每个reducer内部的数据进行排序。因此,它执行局部排序,每个reducer的输出被单独排序。它也可能给出部分有序的结果。
在Hive中使用SORT BY子句的示例
在这个示例中,我们使用SORT BY子句按排序顺序排列数据。
- 通过使用以下命令按降序获取数据:
hive> select * from emp sort by salary desc;
这里,我们得到了期望的结果。