一级分区

准备数据

order_created.txt

  1. 10703007267488 2014-05-01 06:01:12.334+01
  2. 10101043505096 2014-05-01 07:28:12.342+01
  3. 10103043509747 2014-05-01 07:50:12.33+01
  4. 10103043501575 2014-05-01 09:27:12.33+01
  5. 10104043514061 2014-05-01 09:03:12.324+01

创建表

PARTITIONED BY 就是声明分区,并指定分区字段和字段类型
terminated by 是指定 tab分割(\t就是tab)

  1. create table order_partition
  2. (
  3. order_no string,
  4. order_time string
  5. )
  6. PARTITIONED BY (event_time string)
  7. row format delimited fields terminated by '\t';

导入数据

现在order_created.txt所在的目录在/root/soft

  1. [root@zjj101 soft]# ls
  2. data docker hadoop-2.7.2 hive-1.2.1 myconf order_created.txt tmp
  3. [root@zjj101 soft]# pwd
  4. /root/soft

使用load方式导入
sql

  1. load data local inpath '/root/soft/order_created.txt' into table order_partition
  2. partition (event_time = '2014-05-01');

参数说明:
(1)load data:表示加载数据
(2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表
如果导入的文件在本地文件系统,需要加上local,使用put将本地上传到hdfs
不加local默认导入的文件是在hdfs,使用mv将源文件移动到目标目录

(3)inpath:表示加载数据的路径
(4)overwrite:表示覆盖表中已有数据,否则表示追加
(5)into table:表示加载到哪张表
(6)student:表示具体的表
(7)partition:表示上传到指定分区

查询数据

sql

  1. select *
  2. from order_partition
  3. where event_time = '2014-05-01';

hive分区表一级分区的基本使用 - 图1

hdfs控制面板

刚刚的数据就在里面了

hive分区表一级分区的基本使用 - 图2

查看表的描述

查看表的描述