hive中 order by ,distribute by ,cluster by ,sort by 区别

本文详细解析了SQL中orderby、distributeby、sortby及clusterby等关键字的使用方法及其区别,通过具体实例展示了如何利用这些关键字进行数据排序与分布处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

idnameold
1张三10
1李四15
3王五20
4赵六25

 

 假设表中3个字段

order by old 

展现出的数据将会根据old 这一列降序返回4条记录,不具备任何形式的数据分布

select * from table order by old desc

4 赵 25

3 王 20

1 李 15

1 张 10

distribute by 

map reduce 中,map 端将数据按 字段 分布 分发给 reduce  确保 每个reduce 收到的值 是相同的。具备分布的特性

distibute by  id asc 则会将   数据相同的 分发到 一个 reduce 内。具体怎么实现,字段的哈希值/reduce个数   然后取余,余数相同归为一起

sort by

一般 和 distribute 联用,达到分布数据,并按照 指定列进行排序

cluster by 

将数据按照指定列分布后降序 排序分发到各个reduce中

用cluster by 默认指的是 字段 降序 分发,降序排序

例子

select * from table distribute by id sort by id desc

select * from table cluster by id  具备同样效果

--结果

4 赵 25

3 王 20

1 李 15

1 张 10

例子

select * from table cluster by id sort by old asc

--bucket 1

4 赵 25

--bucket 2

3 王 20

1 张 10

1 李 15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值