我在 hive 里有一张兽人的table。在加载包含所有可能分区的表之后,我在hdfs上得到了多个orc文件,即hdfs上的每个分区目录中都有一个orc文件。我需要将每个分区下的所有这些orc文件合并为一个大的orc文件,以用于某些用例。
有人能给我建议一种方法,把这些多个orc文件(属于每个分区)合并成一个大的orc文件。
我试着从分区表创建一个新的非分区orc表。。它确实减少了文件的数量,但不会减少到单个文件。
ps:用另一个表创建一个表完全是一个Map任务,因此使用属性“set mapred.reduce.tasks=1;”将reducer数设置为1没用。
谢谢
1条答案
按热度按时间laximzn51#
你可以用
CONCATENATE
命令合并小兽人文件。这可以在表和分区级别完成:语法符合orc文档:用户可以通过在其表或分区上发出concatenate命令来请求将小型orc文件有效地合并在一起。文件将在条带级别合并而不重新序列化。