我在hive中有一个按年,月,日划分的外部表。所以我删除了一个分区,但我仍然在show partitions中看到它。
>use test_raw_tables;
>show partitions test1_raw;
[year=2016/month=01/day=01]
[year=2017/month=03/day=24]
> alter table test1_raw drop partition (year=2016, month=01, day=01);
> refresh test1_raw;
> show partitions test1_raw;
[year=2016/month=01/day=01]
[year=2017/month=03/day=24] ---Still see the dropped partition here----
> msck repair table test1_raw;
> show partitions test1_raw;
[year=2016/month=01/day=01]
[year=2017/month=03/day=24] ---Still see the dropped partition here----
从带有hive作为引擎的impala运行。
描述test1_raw col_name,data_type,comment(' amount_hold',' int','')(' id',' int' ;,'')(' transaction_id','字符串','')(' recipient_id',& #39;字符串','')('年','字符串','')(' month',' string','')(' day',' string','' )('',无,无)('#分区信息',无,无)('#col_name',' data_type&# 39;,'评论')('',无,无)('年','字符串',' ')(' month',' string','')(' day',' string' ;,'') location' hdfs:// localhost / sys / datalake / testing / test1_raw'
这是什么问题? 删除后,该分区将删除hdfs中的数据。无法弄清楚这个问题。
答案 0 :(得分:0)
在表格中,定义列年,月和日是字符串格式。 请尝试使用' 2016',' 01'和' 01'。 我使用下面的代码,它的工作原理。
alter table test1_raw drop partition (year='2016', month='01', day='01');