hive分区用2个字段有何限制_关于Hive使用动态分区插入数据详解

本文详细介绍了在Hive中使用动态分区的方法,包括如何创建单字段和多字段分区表,以及如何进行数据插入。重点指出动态分区时字段顺序的重要性,强调查询字段数量必须与表字段数量匹配。同时提到了在多个分区字段情况下,如何实现部分静态和全部动态分区,并讨论了动态分区的相关配置参数和最佳实践。
摘要由CSDN通过智能技术生成

1.创建一个单一字段分区表

hive>  create table dpartition(id int ,name string )

partitioned by(ct string  );

2.往表里装载数据,并且动态建立分区,以city建立动态分区

hive> set hive.exec.dynamic.partition=true;  #开启动态分区,默认是false

set hive.exec.dynamic.partition.mode=nonstrict; #开启允许所有分区都是动态的,否则必须要有静态分区才能使用。

insert overwrite table dpartition

partition(ct)

select id ,name,city from  mytest_tmp2_p;

要点:因为dpartition表中只有两个字段,所以当我们查询了三个字段时(多了city字段),所以系统默认以最后一个字段city为分区名,因为分区表的分区字段默认也是该表中的字段,且依次排在表中字段的最后面。所以分区需要分区的字段只能放在后面,不能把顺序弄错。如果我们查询了四个字段的话,则会报错,因为该表加上分区字段也才三个。要注意系统是根据查询字段的位置推断分区名的,而不是字段名称。

--查看可知,hive已经完成了以city字段为分区字段,实现了动态分区。

hive > show partitions dpartition;

partition

ct=beijing

ct=beijing1

注意:使用,insert...select 往表中导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值