Hive中order by,sort by,distribute by,Cluster by

order by

对数据进行全局排序, 只有一个reducer Task, 效率低

mysql中strict模式下, order by必须要有limit, 不然会拒绝执行. 对于分区表, 必须显示指定分区字段查询

sort by

可以有多个reduce Task(以distribute by后的字段个数为准)

每个reduce Task内部数据有序, 但全局无序

distribute by

按照指定的字段对数据进行划分到不同的输出reduce文件中

distribute by相当于MR中的partitioner

distribute by通常和sort by连用: select * from logs distribute by date sort by te;

注意,Hive 要求 DISTRIBUTE BY 语句要写在 SORT BY 语句之前。

Cluster by

如果sort by和distribute by中所有的列相同, 可以缩写为Cluster by以便同时指定两者所使用的列

注意被Cluster by指定的列只能降序, 一般用于桶表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值