我在Hive中有一个按年、月、日划分的外部表。所以我删除了一个分区,但在show分区中仍然可以看到它。
>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的原始列名称、数据类型、注解('amount\u hold'、'int'、'')('id'、'int'、'')('transaction\u id'、'string'、'')('recipient\u id'、'string'、'')('year'、'string'、'')('month'、'string'、'')(''day'、'string'、'')(''dispartition information'、none、none)('col\u name'、'data\u type'、'comment')(''、none、none)('year','字符串',''('月','字符串','')('日','字符串','')位置'hdfs://localhost/sys/datalake/testing/test1_raw'
这里有什么问题?删除分区后,hdfs中的数据将被删除。我搞不懂这个问题。
1条答案
按热度按时间4dbbbstv1#
在表定义列中,年、月和日是字符串格式。请尝试使用“2016”、“01”和“01”。我用下面的代码,它的工作。