让我说我创建了一个带有分区列的hive表作为年,月和日,如果我从hdfs中删除分区,那么结果会反映在hive表中或不是
答案 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
命令。