有效地合并大型镶木地板文件

Effectively merge big parquet files

我正在使用镶木地板工具合并镶木地板文件。但似乎 parquet-tools 需要与合并文件一样大的内存量。我们在 parquet-tools 中是否有其他方法或可配置选项来更有效地使用内存?因为我 运行 合并作业作为 hadoop env 上的映射作业。容器每次都被杀死,因为它使用的内存比提供的多。

谢谢。

我不建议使用 parquet-tools merge,因为它只是一个接一个地放置行组,因此您仍然会有小的组,只是打包在一个文件中。生成的文件通常不会有明显更好的性能,在某些情况下,它的性能甚至可能比单独的文件更差。有关详细信息,请参阅 PARQUET-1115

目前合并 Parquet 文件的唯一正确方法是从中读取所有数据并将其写入新的 Parquet 文件。您可以使用 MapReduce 作业(需要为此编写自定义代码)或使用 Spark、Hive 或 Impala.