问题
修改分区表的列(添加列)但是查询数据为null
原因
修改分区表导致分区字段元数据出问题,需要更新分区信息
解决方法1:修改元数据
原因是修改表结构以后,元数据库中的SDS中该表对应的CD_ID会改变,但是该表分区下面对应的CD_ID还是原来表的CD_ID,
比如我这边测试表叫:xj_test1,分区字段叫dt
show create table xxxx
查看表的CD_ID:select CD_ID from SDS where LOCATION='hdfs://n1:8020/user/hive/warehouse/xj_test1' ,(假设我们这里查出来表的新的CD_ID值为35178)
查看表的所有分区的CD_ID:SELECT * FROM SDS WHERE LOCATION LIKE 'hdfs://n1:8020/user/hive/warehouse/xj_test1/dt=%'
我们需要手工更新一下现有分区的CD_ID的值为表CD_ID的值:
UPDATE SDS SET CD_ID=35178 WHERE LOCATION LIKE 'hdfs://n1:8020/user/hive/warehouse/xj_test1/dt=%'
解决方法2:删除分区新建分区