hive创建一级分区和多级分区的方法

本文介绍如何在Hive中创建一级及多级分区表,并详细解释分区的重要性和意义,包括提高查询效率的方法,如通过分区管理和分桶技术减少不必要的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建一级分区
1.在hive中建表

create table if not exists d_user(
id int,
name String,
sex String)
PARTITIONED BY (country String) ##其中partitioned是一个关键词,表示以country来进行分区,且是静态分区,即倒数数据的使用才会进行创建相应的分区
ROW FORMAT DELIMITED ##表示对行进行格式化
FIELDS TERMINATED BY '\t'; ##表示以tab键来进行对数据的分割

2.将数据传入表中

load data local inpath '/1/user-china.txt' into table d_user partition(country='china');
##其中加上local则表示从本地导数据到hdfs上面,如果不加则是从hdfs上的一个path下截切到另一个path下
partition则是分在country为china的区下,导数据的时候进行创建

二、创建多级分区
创建多级分区和创建一级分区差别不大,需要改动的地方也就是partition这里多加入你要更加进行细分区的条件
1.建表

create table if not exists date_user(
id int,
name String,
sex String,
age int)
PARTITIONED BY (year String,mounth String)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

2.导数据到表中

load data local inpath '/1/user-2019-12-12' into table date_user partition (year='2019',mounth='12');
load data local inpath '/1/user-2019-11-11' into table date_user partition (year='2019',mounth='11');
load data local inpath '/1/user-2019-10-10' into table date_user partition (year='2019',mounth=10');

三、分区的意义
在hive中我们要按条件去查询数据的话,由于在大数据环境下数据量过于庞大,直接按条件查询的话效率会特别慢,所有我们把具有相同特征的数据进行分区管理,查询的时候范围便会缩小,进而提高查询的效率,后续也会有分桶的概念,即表中的数据进行切分,这样是为了减少因为笛卡尔积而产生的mapreduce的计算,进而提示效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值