我有一个名为employee with partition(年,月,日)的外部分区表,每天都会有一个新文件来到特定日期的位置调用,今天的日期将在2016/10/13.
TABLE SCHEMA:
create External table employee(EMPID Int,FirstName String,.....)
partitioned by (year string,month string,day string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' LOCATION '/.../emp';
Run Code Online (Sandbox Code Playgroud)
所以我们每天都需要运行工作正常的命令
ALTER TABLE employee ADD IF NOT EXISTS PARTITION (year=2016,month=10,day=14) LOCATION '/.../emp/2016/10/14';
Run Code Online (Sandbox Code Playgroud)
但是一旦我们尝试使用下面的命令,因为我们不想手动执行上面的alter table命令,它会抛出Error
hive> MSCK REPAIR TABLE employee;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
Run Code Online (Sandbox Code Playgroud)
注意:
hive> MSCK TABLE employee; //this show me that a partition has not added in the table
OK
Partitions not in metastore: employee:2016/10/14 …Run Code Online (Sandbox Code Playgroud)