【问题标题】:How to combine multiple ORC files (belonging to each partition) in a Partitioned Hive ORC table into a single big ORC file如何将分区 Hive ORC 表中的多个 ORC 文件(属于每个分区)组合成一个大 ORC 文件
【发布时间】:2018-06-10 04:25:29
【问题描述】:

我在 Hive 中有一个分区的 ORC 表。加载包含所有可能分区的表后,我在 HDFS 上获得了多个 ORC 文件,即 HDFS 上的每个分区目录中都有一个 ORC 文件。对于某些用例,我需要将每个分区下的所有这些 ORC 文件组合成一个大 ORC 文件。

有人可以建议我将这些多个 ORC 文件(属于每个分区)组合成一个大 ORC 文件的方法吗?

我尝试从分区表创建一个新的非分区 ORC 表。它确实减少了文件数量,但没有减少到单个文件。

PS:从另一个表中创建一个表完全是一个映射任务,因此使用属性“set mapred.reduce.tasks=1;”将 reducer 的数量设置为 1;没用。

谢谢

【问题讨论】:

    标签: hadoop hive partitioning orc


    【解决方案1】:

    您可以使用CONCATENATE 命令来合并小的orc 文件。这可以在表以及分区级别完成: 根据orc 文档的语法:

    用户可以通过以下方式请求将小型 ORC 文件有效地合并在一起 在他们的表或分区上发出一个 CONCATENATE 命令。文件 将在条带级别合并,无需重新序列化。

    ALTER TABLE istari [PARTITION partition_spec] CONCATENATE;
    

    【讨论】:

      猜你喜欢
      • 2015-09-13
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2019-06-17
      • 1970-01-01
      • 2020-07-09
      • 2017-08-25
      相关资源
      最近更新 更多