Hive相关注意事项

1.load data  [locall]  inpath 'xxx' into table xxxxx

如果是本地路径,其实就是一次put上传操作

如果路径是HDFS,其实是一次mv操作

2.创建分区表partitioned by:字段不能和表中列的字段重复

3.创建分桶表cluster by:必须是表中的某列的字段

4.order by :相当于全排序,只有一个reducer

5.sort by:相当于部分排序,每个reducer内有序,利用该字段(key)排序,但是不一定按照该字段分区(key)。(可能使用了自定义排序类实现WritertableComparator

6.distribute by:分区(概念上和分区好像都一样,都使用HashPartition,但是分桶还有抽样查询功能,分区和分桶其他区别笔者不知道,知道的网友可以交流下........)。同时这里按照某个字段(key,因为默认是HashPartition)分区,但是不一定按照该字段(key)排序。此外,当distribute by和sort by结合使用时并且使用的不是同一个key,则sort by 使用的自定义排序类实现WritertableComparator接口从而实现排序。

如下图按照最后一个字段分区,说明该字段是key(默认用的HashPartition),但是没有按照该key排序

7.cluster By

8 sort by 对应部分排序! 将数据根据设置的reduceTask数量,使用HashPartition进行分区!
                        对每个分区后的数据根据指定的字段进行排序!
                        
 排序:  当前的字段,在key中! 而且,在当前key的compareTo方法中,使用了当前字段进行比较!
        
              
              
 分区:  int xx=Partitioner.getPartition(key,value,numReduceTasks)
                            保证返回的0<=xx<numReduceTasks

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值