一、静态分区
1、创建分区表
hive (default)> create table order_mulit_partition( > order_number string, > event_time string > ) > PARTITIONED BY(event_month string, step string) > row format delimited fields terminated by '\t';
2、加载数据到分区表
load data local inpath ');
order_created.txt内容如下
order_number event_time -- :: -- :: -- :: -- :: -- ::
3、这种手动指定分区加载数据,就是常说的静态分区的使用。但是在日常工作中用的比较多的是动态分区。
二、动态分区
需求:按照不同部门作为分区导数据到目标表
以上需求如果用静态分区的话,数据量大你是不是很懵逼??所以这个需求一般采用动态分区来实现。
1、创建目标表
hive (default)> create table emp_dynamic_partition( > empno int, > ename string, > job string, > mgr int, > hiredate string, > sal double, > comm double) > PARTITIONED BY(deptno int) > row format delimited fields terminated by '\t';
2、采用动态方式加载数据到目标表
加载之前先设置一下下面的参数
hive (default)> set hive.exec.dynamic.partition.mode=nonstrict
开始加载
insert into table emp_dynamic_partition partition(deptno) select empno , ename , job , mgr , hiredate , sal , comm, deptno from emp;
上面加载数据方式并没有指定具体的分区,只是指出了分区字段。在select最后一个字段必须跟你的分区字段,这样就会自行根据deptno的value来分区。
3、验证一下
有值
hive (default)> select * from emp_dynamic_partition; OK emp_dynamic_partition.empno emp_dynamic_partition.ename emp_dynamic_partition.job emp_dynamic_partition.mgr emp_dynamic_partition.hiredate emp_dynamic_partition.sal emp_dynamic_partition.comm emp_dynamic_partition.deptno CLARK MANAGER -- KING PRESIDENT NULL -- MILLER CLERK -- SMITH CLERK -- JONES MANAGER -- SCOTT ANALYST -- ADAMS CLERK -- FORD ANALYST -- ALLEN SALESMAN -- WARD SALESMAN -- MARTIN SALESMAN -- BLAKE MANAGER -- TURNER SALESMAN -- JAMES CLERK -- HIVE PROGRAM -- 10300.0 NULL NULL
有分区(自动分区)
hive (default)> show partitions emp_dynamic_partition; OK partition deptno= deptno= deptno= deptno=__HIVE_DEFAULT_PARTITION__ Time taken: row(s)
4、emp表的具体你内容如下
hive (default)> select * from emp; OK emp.empno emp.ename emp.job emp.mgr emp.hiredate emp.sal emp.comm emp.deptno SMITH CLERK -- ALLEN SALESMAN -- WARD SALESMAN -- JONES MANAGER -- MARTIN SALESMAN -- BLAKE MANAGER -- CLARK MANAGER -- SCOTT ANALYST -- KING PRESIDENT NULL -- TURNER SALESMAN -- ADAMS CLERK -- JAMES CLERK -- FORD ANALYST -- MILLER CLERK -- HIVE PROGRAM -- 10300.0 NULL NULL
——————— 本文来自 A_ChunUnique 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Gavin_chun/article/details/78174492