hadoop - 有效地合并大型 Parquet 文件

标签 hadoop parquet

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

谢谢。

最佳答案

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

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

关于hadoop - 有效地合并大型 Parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50299815/

相关文章:

Hadoop 高可用性不工作

java - Yarn MapReduce 作业问题 - Hadoop 2.3.0 中的 AM 容器启动错误

hadoop - 将 csv 数据插入复杂的配置单元表

apache-spark - 在Docker Parquet错误中发 Spark 未找到预定义架构

scala - Spark 2.2 无法将 df 写入 parquet

java - Hadoop WordCount 示例问题,我需要进行一些性能调整吗?

hadoop - 如果只需要将记录插入数据库中,是否需要 reducer ?

pandas - 排序后磁盘上压缩文件的大小大幅增加?

scala - 使用Spark通过s3a将 Parquet 文件写入s3非常慢

pandas - 有没有办法像 Pyspark 那样将 Pandas 数据保存在多个(parquet/csv)文件中?