问题描述:
对于已有分区的Hive表,新增部分字段,并且重新导入数据至该分区后查询数据,则会发现数据表中,新增加的字段为NULL空值。
原因:
当我们对已有分区的Hive表做新增字段操作,其实是对表的原数据(表 - 字段关系)进行修改,但是没有修改(分区 - 字段关系)。
因此查询的时候,依旧查询出来的是分区-字段关系。而不是表-字段关系。
解决办法:
方案一.删除原有分区,重新创建分区,然后再导入数据。
方案二.已导入数据,那么就删除旧的分区,使用msck的 MSCK REPAIR TABLE table_name; 命令来自动生成分区。