分区信息无法查到的问题
Hive 分区信息丢失:HDFS 上传数据后查不到?MSCK REPAIR TABLE 一键修复
在 Hive 分区表的使用中,有一个非常常见的坑:
- 你在 HDFS 上手动建了一个分区目录,比如
date=20210415 - 把数据文件传进去了
- 去 Hive 里
SHOW PARTITIONS,看不到这个分区 SELECT * FROM 表 WHERE date='20210415',也查不到数据
数据明明在 HDFS 上,Hive 就是看不见。
问题现象:数据传上去了,Hive 查不到
假设你有一个分区表 test_partitioned,按 date 分区。
你用 HDFS 命令手动创建了分区目录并上传了数据:
hdfs dfs -mkdir /user/hive/warehouse/study_hive.db/test_partitioned/date=20210415
hdfs dfs -put data.txt /user/hive/warehouse/study_hive.db/test_partitioned/date=20210415/
HDFS 上已经有这个目录了:

去 Hive 里查看:
SHOW PARTITIONS test_partitioned;
-- 结果只有 date=20210413 和 date=20210414
-- date=20210415 没出现
