gpt4 book ai didi

hadoop - Hive 从带分区的文件创建表

转载 作者:可可西里 更新时间:2023-11-01 14:53:00 26 4
gpt4 key购买 nike

我遇到了一个我无法完全理解的奇怪的 HIVE 行为。我真的希望有人能对这件事有所了解。

我正在使用以下脚本创建表并将数据添加到表中:

DROP TABLE myTbl;
CREATE EXTERNAL TABLE myTbl (
Col1 string,
Col2 string,
Col3 string,
Col4 string,
)
PARTITIONED BY (partition STRING)
LOCATION '${hiveconf:Valid_location_on_aws_s3_with_the_proper_file_to_create_table}';

Hive 运行脚本返回 OK 但(这就是问题所在)表是空的。运行:select * from myTbl; 什么都不返回

在我运行以下命令/脚本后,这个问题的解决方案相当简单:

MSCK 修复表 myTbl

现在,当对该表执行选择时,我可以看到文件中的所有数据。

我不明白的是为什么我需要使用修复才能看到表中的数据。

附言使用 LOAD INTO TABLE 可以完美运行,无需任何修复。

最佳答案

这可能与 DROP TABLE 删除所有表分区的元数据的情况有关。但是 CREATE TABLE 不会在 Metastore 中重新创建此信息。因此,在发出 CREATE TABLE Hive 之后还不知道有分区并且其中有数据。 MSCK REPAIR TABLE 在 metastore 中重新创建此信息(或者您可以使用 ALTER TABLE tbl ADD PARTITION 手动完成)。

关于hadoop - Hive 从带分区的文件创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com