从HDFS中删除分区目录,它会反映在hive表中吗?

时间:2017-03-09 07:21:03

标签: hive hive-partitions

让我说我创建了一个带有分区列的hive表作为年,月和日,如果我从hdfs中删除分区,那么结果会反映在hive表中或不是

2 个答案:

答案 0 :(得分:0)

是。分区数据将消失 Metastore仍将保留分区信息(元数据),您可以使用grid-template-columns查看它 您可以使用show partition mytable找到需要删除的分区 您可以使用msck repair mytable

删除分区

答案 1 :(得分:0)

Hive表仍会显示分区,您必须手动删除HDFS上删除的分区(或删除并重新创建表)并运行MSCK。

<强>命令:

如果您打算更改表并删除所有已删除的分区 -

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...]
  [IGNORE PROTECTION] [PURGE];            -- (Note: PURGE available in Hive 1.2.0 and later, IGNORE PROTECTION not available 2.0.0 and later)

我会使用drop并重新创建表然后运行MSCK。

将所有现有分区添加到表 -

msck repair table <table_name>

或者,您可以使用ALTER TABLE删除所有分区,然后运行MSCK命令。