【问题标题】:How to skip file headers in impala external table?如何跳过 impala 外部表中的文件头?
【发布时间】:2014-02-21 12:58:45
【问题描述】:

我在 HDFS 上有 78 GB 大小的文件

我需要在它上面创建一个 Impala 外部表来对可用数据执行一些分组和聚合

问题 该文件包含标题。

问题 有没有办法在读取文件并查询其余数据时跳过文件中的标题。

虽然我有办法通过将文件复制到本地然后删除标头然后将更新的文件再次复制到 HDFS 来解决问题,但由于文件太大,这是不可行的

如果有人有任何想法,请建议...

任何建议将不胜感激......

提前致谢

【问题讨论】:

    标签: hadoop hdfs cloudera impala external-tables


    【解决方案1】:

    UPDATE 或 DELETE 行操作在 Hive/Impala 中不可用。所以你应该模拟 DELETE 为

    • 将数据文件加载到临时 Hive/Impala 表中
    • 在临时表上使用 INSERT INTO 或 CREATE TABLE AS 来创建要求表

    【讨论】:

    • 是的,我有这个选项,但这将花费我现在需要的空间的 2 倍......还有其他方法吗?但是一个聪明的解决方案谢谢:)
    • 没有。为什么是2x?从中复制数据后删除临时表。
    【解决方案2】:

    一种直接的方法是通过 Pig 运行 HDFS 数据以过滤掉标头并生成一个新的 HDFS 数据集,该数据集已格式化以便 Impala 可以干净地读取它。

    更神秘的方法取决于 HDFS 数据的格式。例如,如果标题行和数据行都是制表符分隔的,那么您可以使用包含所有 STRING 字段的架构来读取所有内容,然后在进行聚合之前过滤或划分标题。

    【讨论】:

    • 好的,这需要一些猪知识,但我没有任何知识:(无论如何我会尝试,如果你有与此相关的链接,请更新你的答案。
    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多