我在Hive中有一个分区的ORC表。在加载具有所有可能分区的表之后,我得到HDFS - 多个ORC文件,即HDFS上的每个分区目录中都有一个ORC文件。我需要将每个分区下的所有这些ORC文件组合成一个大的ORC文件以用于某些用例。
有人可以建议我将这些多个ORC文件(属于每个分区)合并到一个大的ORC文件中。
我尝试从Partitioned表创建一个新的非分区ORC表。它确实减少了文件数量,但没有减少到单个文件。
PS:从另一个表创建一个表是一个完全的map任务,因此使用属性'set mapred.reduce.tasks = 1;'将reducers的数量设置为1没有用。
由于
答案 0 :(得分:0)
您可以使用CONCATENATE
命令组合小型orc文件。这可以在表格和分区级别完成:
orc文档中的语法:
用户可以请求将小型ORC文件有效合并 在其表或分区上发出CONCATENATE命令。文件 将在条带级别合并而不进行重新编译。
ALTER TABLE istari [PARTITION partition_spec] CONCATENATE;