如何将分区 Hive ORC 表中的多个 ORC 文件(属于每个分区)合并为一个大的 ORC 文件



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

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

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

PS:从另一个表创建一个表完全是一个映射任务,因此使用属性"set mapred.reduce.tasks=1;"将化简器的数量设置为 1 无济于事。

谢谢

您可以使用

CONCATENATE 命令合并小 orc 文件。这可以在表和分区级别完成:根据兽人文档的语法:

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

ALTER TABLE istari [PARTITION partition_spec] CONCATENATE;

相关内容

  • 没有找到相关文章

最新更新