一、静态分区
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

Hive静态分区和动态分区的更多相关文章

  1. Hive的静态分区和动态分区

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6831884.html 转载请注明出处 虽然之前已经用过很多次hive的分区表,但是还是找时间快速回顾总结 ...

  2. Hive中静态分区和动态分区总结

    目录 背景 第一部分 静态分区 第二部分 动态分区 第三部分 两者的比较 第四部分 动态分区使用的问题 参考文献及资料 背景 在Hive中有两种类型的分区:静态分区(Static Partitioni ...

  3. 什么是hive的静态分区和动态分区,它们又有什么区别呢?hive动态分区详解

    面试官问我,什么是hive的静态分区和动态分区,这题我会呀. 简述 分区是hive存放数据的一种方式,将列值作为目录来存放数据,就是一个分区,可以有多列. 这样查询时使用分区列进行过滤,只需根据列值直 ...

  4. 【HIVE】(2)分区表、二级分区、动态分区、分桶、抽样

    分区表: 建表语句中添加:partitioned by (col1 string, col2 string) create table emp_pt(id int, name string, job ...

  5. hive SQL 静态分区和 动态分区

    Hive 分区介绍: hive中简单介绍分区表(partition table),含动态分区(dynamic partition)与静态分区(static partition) hive中创建分区表没 ...

  6. Hive静态分区和动态分区,对应Mysql中的元数据信息

    静态分区: 手动指定分区加载数据,就是常说的静态分区的使用.但是在日常工作中用的比较多的是动态分区. 创建: hive> create table order_mulit_partition( ...

  7. 第4节 hive调优:动态分区调整问题

    执行如下截图中的语句时卡住了: 原因:yarn未启动,hive底层是要提交mapreduce到yarn上才能计算结果的. 之前启动yarn时,未执行jps查看是否已经启动.其实未启动成功: [root ...

  8. Hive分区(静态分区+动态分区)

    Hive分区的概念与传统关系型数据库分区不同. 传统数据库的分区方式:就oracle而言,分区独立存在于段里,里面存储真实的数据,在数据进行插入的时候自动分配分区. Hive的分区方式:由于Hive实 ...

  9. 对现有Hive的大表进行动态分区

    分区是在处理大型事实表时常用的方法.分区的好处在于缩小查询扫描范围,从而提高速度.分区分为两种:静态分区static partition和动态分区dynamic partition.静态分区和动态分区 ...

随机推荐

  1. RNN 网络

    原文:http://yangguang2009.github.io/2016/12/18/deeplearning/recurrent-neural-networks-for-deep-learnin ...

  2. IQ调制原理

    现代通信中,IQ调制基本上属于是标准配置,因为利用IQ调制可以做出所有的调制方式. 但是IQ调制到底是怎么工作的,为什么需要星座映射,成型滤波又是用来干嘛的.这个呢,讲通信原理的时候倒是都会泛泛的提到 ...

  3. 003-hive安装

    http://www.aboutyun.com/thread-6902-1-1.html http://www.aboutyun.com/thread-7374-1-1.html

  4. C# HtmlElement的GetAttribute("class") return ""

    用GetAttribute("className")代替GetAttribute("class")

  5. js贪心算法---背包问题

    /* * @param {Object} capacity 背包容量 6 * @param {Object} weights 物品重量 [2,3,4] * @param {Object} values ...

  6. PHP获取访客ip、系统、浏览器等信息[转]

    1.获取访客操作系统信息   <?php   function GetOs() {   if (!empty($_SERVER['HTTP_USER_AGENT'])) {   $OS = $_ ...

  7. Hinge Loss、交叉熵损失、平方损失、指数损失、对数损失、0-1损失、绝对值损失

    损失函数(Loss function)是用来估量你模型的预测值 f(x) 与真实值 Y 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x)) 来表示.损失函数越小,模型的鲁棒性就越好. 损失 ...

  8. python class 2

    //test.py 1 class Employee: 2         'all employee' 3         empCount = 0 4         def __init__(s ...

  9. 多线程:QueueUserWorkItem引发的闭包与变量共享

    //1. public void SaveModel(testmodel msg) { ThreadPool.QueueUserWorkItem(new WaitCallback(SaveModelT ...

  10. (已解决)Xcode 运行报错: clang: error: unknown argument: '-websockets'

    报错内容: 解决办法: