将数据从txt表加载到orc表HIVE- Query



我的主要目的是创建一个以ORC形式存储的表。为此,我遵循以下步骤

我已经创建了一个文件夹/user/hive/external并创建了两个表(table_txt &table_orc)在同一位置。在table_txt中加载数据之前,一切正常。

现在,我发现,当我使用

将数据从table_txt移动到table_orc时
INSERT OVERWRITE TABLE table_orc SELECT * FROM table_txt;

从路径*/外部表被删除(如在web UI上查看),现在我有一个名为"000000_0"的文件,点击它,我得到一些编码的东西。

问题——

1-这个000000_0文件是什么,为什么在web UI上不可见表

2-当我查询table_txt,为什么它不给任何数据?而在查询table_orc,我得到的结果?

创建了两个表…在同一位置==> 红旗!!

位置定义了哪个数据文件属于哪个表。换句话说,每个表都应该位于私有目录上。因此,INSERT OVERWRITE删除了ORC表的私有目录中的所有内容,然后创建了一个新的数据文件——ORC二进制格式。这是预期行为。可惜TXT文件也在那里。

顺便说一下,"外部"表和"托管"表之间的一个区别是,当您drop一个托管表时,整个目录将被销毁,而删除一个外部表时,数据将保持原样。

相关内容

  • 没有找到相关文章

最新更新