hive修改表结构后插入数据查询为空

8 篇文章 0 订阅

最近使用hive的时候发现,当修改已存在的表,添加另外的列,然后插入数据,发现新插入的数据中,里面的新列数据皆为NULL。(当前hive版本为2.1.0)

查了一下资料,发现hive的元数据表SDS中,该表的CD_ID值为旧值,在更新表结构后该CD_ID有改动。

解决办法:

1.如果要解决这个问题,可以手动的修改SDS表中该数据表对应的CD_ID值。
2.可以手动的给该表的分区加上新增的列,如:
    alter table student partition(sex='boy') add columns(newColumnName string);
3.删除分区后重建。

以上的方法,根据情况使用,如果是重要的表一般不建议直接操作hive元数据表,而如果分区很多的话,添加新增列或者直接删除分区后重建操作也比较繁琐。

需注意的是如果使用spark连接hive,会发现修改后再插入也能查到正确的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值