Hive的分区以及各种函数用法

1.分区表的创建

create table emp_partition(
EMPNO bigint,
ENAME string,
JOB string,
MGR bigint,
HIREDATE string,
SAL bigint,
COMM bigint,
DEPTNO bigint
)PARTITIONED BY (dt string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
;

创建一个以dt为分区列的分区表

2.向表中插入数据

insert into table emp_partition partition(dt='20220401')
    select * from emp;
select * from emp_partition;

插入数据时必须同时插入分区列数据

3.PARTITIONED BY

Permission denied –没有权限

hdfs dfs -chmod 777 /tmp/hadoop-yarn

分区表的好处,避免全表扫描

4.多级分区

create table emp_partition(
EMPNO bigint,
ENAME string,
JOB string,
MGR bigint,
HIREDATE string,
SAL bigint,
COMM bigint,
DEPTNO bigint
)PARTITIONED BY (dt string,hour string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
;

insert into table emp_partition partition(dt='20220402',hour='12',minute='56')
     select * from emp where job='SALESMAN';
select * from emp_partition where dt='20220401' and hour='12';

5.动态分区

可以按照原表中的某一个字段作为分区,但是注意这个字段不能存在于表中

例如:emp中我们按照deptno,将数据插入到emp_dynamic_partition

create table emp_dynamic_partition(
EMPNO bigint,
ENAME string,
JOB string,
MGR big
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值