如何将一个分区的hiveorc表中的多个orc文件(属于每个分区)组合成一个大的orc文件

368yc8dk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(558)

我在 hive 里有一张兽人的table。在加载包含所有可能分区的表之后,我在hdfs上得到了多个orc文件,即hdfs上的每个分区目录中都有一个orc文件。我需要将每个分区下的所有这些orc文件合并为一个大的orc文件,以用于某些用例。
有人能给我建议一种方法,把这些多个orc文件(属于每个分区)合并成一个大的orc文件。
我试着从分区表创建一个新的非分区orc表。。它确实减少了文件的数量,但不会减少到单个文件。
ps:用另一个表创建一个表完全是一个Map任务,因此使用属性“set mapred.reduce.tasks=1;”将reducer数设置为1没用。
谢谢

laximzn5

laximzn51#

你可以用 CONCATENATE 命令合并小兽人文件。这可以在表和分区级别完成:语法符合orc文档:
用户可以通过在其表或分区上发出concatenate命令来请求将小型orc文件有效地合并在一起。文件将在条带级别合并而不重新序列化。

ALTER TABLE istari [PARTITION partition_spec] CONCATENATE;

相关问题