hive分区表中--新增字段,发现数据为null的坑

数仓开发过程中,经常会有需求变更,添加字段的情况所在,添加完了字段还需要重新跑数据,重新将这个字段的数据加载进去,但是会出现一个坑就是加载的数据为null。

问题所在:

hive分区表中--新增字段,发现数据为null的坑_第1张图片

对于分区表添加字段,向已存在分区中插入数据,结果新增字段的值全部为null。

alter table xunying add colums(name string);

insert overwrite table xunying partition(inc_day='1123') select id,amt,'1' name from tb_xunying;

问题所在:

hive分区表中--新增字段,发现数据为null的坑_第2张图片

解决方案:

1、将这个分区删除!!删除分区会删除该分区的数据,但是本身数据就是重新跑的,所以删除数据无所谓的,这样再重新跑一次脚本,发现数据就有了。

 

2、如果介意删除分区的话,因为删除分区有点不专业,那么使用的解决办法就是:cascade

alter table xunying replace columns(id string,amt string,name string,name2 string) cascade;

在添加分区之后 加上cascade,强制添加字段,重新跑一次,数据就会有了。

hive分区表中--新增字段,发现数据为null的坑_第3张图片

你可能感兴趣的:(大数据学习,Hive学习)