博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive修改表结构后插入数据查询为空
阅读量:4170 次
发布时间:2019-05-26

本文共 399 字,大约阅读时间需要 1 分钟。

最近使用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,会发现修改后再插入也能查到正确的数据。

转载地址:http://oykai.baihongyu.com/

你可能感兴趣的文章
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
[转]C语言printf
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
vue项目打包后无法运行报错空白页面
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Hibernate和IBatis对比
查看>>