1、1:先查看test表的创建语句:show create table test;找出表的源数据所存放的hdfs路径:/user/hive/radius/test
2、2:打开hdfs路径:查看test表的分区
3、当然也可在命令行中使用: show partitions test; 查看多少个分区,但是相对命令行中网页上更加直观一些;
4、3:复制需要修改的分区路径,然后在命令行中使用shell命令修改:例如:province_id=105分区要修改成province_id=hunan;复制分区路径: /user/hive/radius/test/province_id=105在命令行中修改hdfs文件名称:dfs -mv /user/hive/radius/test/province_id=105 /user/hive/radius/test/province_id=hunan;
5、4:修复分区源数据,在命令行执行: MSCK REPAIR TABLE test;
6、如果hive表分区数据比较多的话时间可能稍微长些,耐心等待就行了!
7、显示此页面的话就代表修复成功。
8、5:检查数据是否修改成功:select * from test where province_id = 'hunan' limit 5;
9、检查数据是否有遗漏:select count(*) from test where province_id = 'hunan';
10、修改成功,如果是复制分区数据到其他表的话跟以上步骤一样,只不过把修改hdfs文件名称改成复制hdfs文件。