Hive分区表新增字段为null的bug及解决方法
来源:互联网 发布:系统工程编程 编辑:程序博客网 时间:2024/06/11 15:21
最近工作中遇到一个问题:
对于分区表添加字段,向已存在分区中插入数据,结果新增字段的值全部为null。
注:是已存在分区,新的分区并不会产生该问题;无论是内部表还是外部表均有该问题。
在新增字段之后及时对表进行msck repair table 仍然存在问题。
问题描述
Hive版本:2.2.0
创建分区外部表test1
create external table test1(id int) partitioned by (pt_d varchar(11)) location '/user/test1'
插入数据
insert into table test1 partition(pt_d='20170101') values(1),(2);
查看数据
select * from test1;
添加新的字段name
可以通过alter add,也可以通过alter replace
alter table test1 replace columns ( id int ,name string);
再次查看数据
select * from test1;
修复表
msck repair table test1;
向分区20170101插入数据
insert overwrite table test1 partition(pt_d='20170101') values(1,'1xiao'),(2,'1da');
查看数据
select * from test1;
解决方法
解决该问的关键是删除旧分区,因为虽然HDFS上的数据更新了,但是我们查询的时候仍然查询的是旧的元数据信息(即Mysql中的信息)
在我们插入完数据之后,需要删除元数据的旧分区
alter table table_name drop partition (pt_d='20170101');
然后有两种方式恢复数据
- 1.添加该分区
alter table table_name add partition(pt_d='20170101');
或者通过修复分区也可以
- 2.修复表结构
msck repair table table_name;
再次查看数据,发现插入的数据成功了!!!
阅读全文
0 0
- Hive分区表新增字段为null的bug及解决方法
- hive分区表增加字段新增字段值为空的bug
- hive分区表增加字段会导致新增字段无法显示值的BUG
- hive分区表增加字段会导致新增字段无法显示值的BUG
- [Hive]Hive分区表新增字段
- HIVE分区表新增字段后新增字段值为空,需要带分区加字段
- hive内部分区表(ORC格式)新增字段后出现的问题
- 一个SQL的bug:值为null的字段处理
- hive 分区表 添加新字段 查询为NULL的情况 我也遇到了这个问题
- Hive分区表中 添加新字段,值为NULL 问题解决
- Hdfs 导入Hive,时间相关的字段 导入后为NULL
- HIVE 分区表添加字段后的奇怪现象
- HIVE 分区表添加字段后的奇怪现象
- hive load文件第一个字段为NULL
- hive的表新增字段后,新增字段不能load数据
- 对表中的字段设置了默认值,新增记录后却发现该字段为null
- 关于Hibernate使用组合主键时,组合主键中有些字段为null时的解决方法
- [DBA日记]字段为null值时,索引及统计的研究及理解
- HTML5图片与文本对齐方式
- Java 基本数据类型
- Hive基本操作笔记
- synchronized同步锁
- 凸凸凸的eclipse快捷键与壁纸
- Hive分区表新增字段为null的bug及解决方法
- Phalcon 上传文件
- 使用APACHE KNOX作为proxy访问web,同时开启SSO功能
- 2014年蓝桥杯之切面条
- SQL创建表之数据类型;
- Netd测试工具ndc
- CodeForces 327D(DFS)
- ubuntu16.04 + CUDA8.0+cudnn5.0+tensorflow-GPU+python2.7
- 包含cpp文件链接opencv源码编译以及neon加速的Android.mk