我有一个名为employee的外部分区表,带有分区(年、月、日),每天都有一个新文件出现,并在特定的日期位置调用今天的日期,它将在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';
所以每天我们都需要运行命令,它可以正常工作
ALTER TABLE employee ADD IF NOT EXISTS PARTITION (year=2016,month=10,day=14) LOCATION '/.../emp/2016/10/14';
但是一旦我们因为不想手动执行上面的altertable命令而尝试使用below命令,它就会抛出below错误
hive> MSCK REPAIR TABLE employee;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
注:
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
Time taken: 1.066 seconds, Fetched: 1 row(s)
请帮助我,因为我坚持这个。我们有解决这种情况的办法吗?
1条答案
按热度按时间blpfk2vs1#
我找到了一个解决问题的解决方案,如果表静态分区名类似于'year=2016/month=10/day=13',那么我们可以使用下面的命令,它正在工作。。。