Hive表中Partition的创建

作用:

在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,在对应的partition里面去查找就可以,减少查询时间。

 

1. 创建表

]# cat create_rating_table_p.sql
create external table rating_table_p
(userId STRING,
movieId STRING,
rating STRING
)
partitioned by (dt STRING)
row format delimited fields terminated by '\t'
lines terminated by '\n';

 

2. 导入数据

LOAD DATA LOCAL INPATH '/usr/local/hive/test/hive_test_3/ml-latest-small/2009-12.data' OVERWRITE INTO TABLE rating_table_p partition(dt='2009-12');
LOAD DATA LOCAL INPATH '/usr/local/hive/test/hive_test_3/ml-latest-small/2003-09.data' OVERWRITE INTO TABLE rating_table_p partition(dt='2003-09');

 

3. HDFS上面查看,会在以表名为文件夹下面,有两个以时间命名的文件夹,对应日期数据存在对应文件夹下面

]$ hdfs dfs -ls /user/hive/warehouse/rating_table_p
Found 2 items
drwxrwxrwx   - hadoop supergroup          0 2018-06-25 15:27 /user/hive/warehouse/rating_table_p/dt=2003-10
drwxrwxrwx   - hadoop supergroup          0 2018-06-25 15:26 /user/hive/warehouse/rating_table_p/dt=2009-12

 

4. Hive表中查询

hive> select userid, dt from rating_table_p where dt='2009-12' limit 10;
OK
1    2009-12
1    2009-12
1    2009-12
1    2009-12
1    2009-12
1    2009-12
1    2009-12
1    2009-12
1    2009-12
1    2009-12

 

5. 删除分区

alter table rating_table_p drop if exists partition(dt='2003-10');

 

6.添加分区

alter table rating_table_p add if not exists partition(dt='2003-10');

 

转载于:https://www.cnblogs.com/654wangzai321/p/9970371.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值