【问题标题】:Loading data from a txt table into orc table HIVE- Query将数据从 txt 表加载到 orc 表 HIVE-查询
【发布时间】:2015-12-01 16:41:18
【问题描述】:

我的主要目标是创建一个存储为 ORC 的表。为此,我关注了these steps

我创建了一个文件夹 /user/hive/external 并在同一位置创建了两个表(table_txttable_orc)。直到加载table_txt中的数据,就可以了。

现在,我发现,当我使用

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

路径 */external 中的表已被删除(如在 Web UI 上查看的那样),现在我有一个名为“000000_0”的文件,点击它,我得到一些编码的东西。

问题——

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

2- 当我查询 table_txt 时,为什么它没有给出任何数据?而在查询 table_orc 时,我得到了结果?

【问题讨论】:

    标签: hadoop mapreduce hive


    【解决方案1】:

    在同一个位置创建了两个表 ==> RED FLAG!!!

    位置定义了哪些数据文件属于哪个表。换句话说,每个表都应该位于一个私有目录

    所以INSERT OVERWRITE 删除了您ORC 表的私有目录 中的所有内容,然后创建了一个新的数据文件——ORC 二进制格式。这是预期的行为。太糟糕了,TXT 文件也在那里。

    顺便说一句,“外部”表和“托管”表之间的区别之一是,当您drop 托管表时,整个目录都会被破坏,而删除外部表会使数据保持原样.

    【讨论】:

    • 非常感谢!我尝试使用单独的表目录。就像一个魅力! :) 谢谢
    猜你喜欢
    • 2014-03-10
    • 2023-03-19
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 2017-02-22
    • 2017-01-03
    • 2017-09-15
    • 1970-01-01
    相关资源
    最近更新 更多