已删除并重新创建配置单元外部表,但未显示任何数据

nzkunb0c  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(379)

首先创建配置单元外部表:

create external table user_tables.test
(col1 string, col2 string)
partitioned by (date_partition date);

插入记录:

INSERT INTO TABLE user_tables.test
PARTITION (date_partition='2017-11-16') VALUES ('abc', 'xyz'), ('abc1', 'xyz1');

现在,表被删除并用相同的脚本重新创建。当我尝试的时候-

SELECT * FROM user_tables.test WHERE date_partition='2017-11-16';`

我明白了 Done. 0 results.

rbpvctlc

rbpvctlc1#

这是因为您创建的表是分区表。您运行的insert将为日期\u partition='2017-11-16'创建一个分区。当您删除并重新创建表时,hive会丢失有关分区的信息,它只知道有关表的信息。
运行下面的命令,让hive根据数据重新创建分区。

MSCK REPAIR TABLE user_tables.test;

现在您将在运行select时看到数据。
如果您想知道表中的分区,请运行以下语句:

SHOW PARTITIONS user_tables.test;

在msck前后运行此命令以查看效果。

相关问题