【发布时间】:2016-12-01 08:08:07
【问题描述】:
我有多个小的 parquet 文件作为 hive ql 作业的输出生成,我想将输出文件合并到单个 parquet 文件吗?
使用 hdfs or linux commands 的最佳方法是什么?
我们曾经使用cat 命令合并文本文件,但这也适用于镶木地板吗?
我们可以在编写输出文件时使用HiveQL 本身来完成它,就像我们在spark 中使用repartition 或coalesc 方法一样吗?
【问题讨论】:
-
不推荐使用“parquet-tools merge”。 Parquet 将其文件切割成对应于 HDFS 块的 row_groups。 “Parquet-tools merge”仅将 row_groups 放在 row_groups 之后而不合并它们。最后,你会遇到同样的问题。您可以在this ticket 中找到更多解释。您还可以在此blog 中对镶木地板的“row_groups”进行更多说明。
-
按照@Nastasia 提到的票证,这个问题不会得到解决(至少现在是这样)。无论如何,merge-tools 提供的解决方案现在是发出警告 (github.com/apache/parquet-mr/pull/433)。