实训2:高阶查询

一、Order by

Hive SQL中的ORDER BY语法类似于SQL语言中的ORDER BY语法。会对输出的结果进行全局排序。

默认排序顺序为升序(ASC),也可以指定为DESC降序。

二、Order by案例

1.准备工作

shixun2.txt(提前发到QQ群里)

创建表

create table shixun1(
id int,
name string,
score int
)
row format delimited 
fields terminated by ',';

加载数据

load data local inpath '' into table darcy.shixun1;

2.先做一个全表查询

实训2:高阶查询

3. 要求你对学生成绩进行一个排序(默认是升序)

select * from shixun1 order by score;

实训2:高阶查询

4. 要求你对学生成绩进行一个降序

select * from shixun1 order by score desc limit 3

实训2:高阶查询

三、Cluster by

  • 根据指定字段将数据分组,每组内再根据该字段正序排序(只能正序)。

概况起来就是:根据同一个字段,分且排序。

  • 分组取决于reducetask的个数

四、Cluster by案例

create table student(
id int,
name string,
sex string,
age int,
dept string
)
row format delimited 
fields terminated by ',';

1、reducetask查看及设置方法

实训2:高阶查询

2、用cluster by对表student id字段进行分组,reducestask设置为2

命令:select * from student cluster by id;

实训2:高阶查询

五、DISTRIBUTE BY +SORT BY

  • DISTRIBUTE BY +SORT BY就相当于把CLUSTER BY的功能一分为二:

    • DISTRIBUTE BY负责根据指定字段分组;
    • SORT BY负责分组内排序规则。
  • 分组和排序的字段可以不同。

六、DISTRIBUTE BY +SORT BY实例

1、命令

select * from student distribute by sex sort by age desc;

实训2:高阶查询

上一篇:HiveSQL常用(下篇:使用技巧与优化)


下一篇:【TensorFlow】模块与特性