hive add columns后新插入列数据为空

hive在新加列(add columns)后,再load数据时,理论上来说新增的列如果有数据的话会展示出来;
但是add和load后没有展示出对应的数据,hdfs的文件里是有对应的数据的,desc表结构时也有对应的字段;
但是在查看元数据时,发现表的元数据没有发生变化,没有新增加进这一列,具体原因还未知;

最终也没有找到具体的原因,个人觉得是元数据库的同步问题,类似于oracle的脏读,没有实时提交;

解决办法:
方法一:重建分区
方法二:手动更新元数据
—-在元数据库里执行如下语句
1、select CD_ID from SDS where LOCATION=’hdfs://ods.db/tablename’; ——-查找表对应的CD_ID
2、SELECT * FROM SDS WHERE LOCATION LIKE ‘hdfs://bidc/ods.db/tablname/pt=%’; –查找表总共有哪些分区
3、UPDATE SDS SET CD_ID=(查询1中的CD_ID的值) WHERE LOCATION LIKE ‘hdfs://bidc/ods.db/tablename/pt=%’; —-更新全部分区,如果要指定更新的分区,把%改为确切的分区值即可
方法三:等它自己更新,目前发现的跨天后是可以正常的

方法二是亲测是可以的;

转载自:
http://blog.sina.com.cn/s/blog_b82e70870102vuvf.html

切实解决了我的问题。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值