Spark 生成了多个小 parquet 文件。如何在生产者和消费者 Spark 作业上有效处理少量 parquet 文件。
恕我直言,最直接的方法是在写入 parquet 文件之前使用重新分区/合并(除非数据倾斜并且您想要创建相同大小的输出,否则最好合并),这样您就不会创建小文件。
df
.map(<some transformation>)
.filter(<some filter>)
///...
.coalesce(<number of partitions>)
.write
.parquet(<path>)
分区数可以根据数据帧中的总行数除以某个因素来计算,通过反复试验将为您提供适当的大小。
在大多数大数据框架中,最佳实践是优先选择少量较大的文件而不是许多小文件(我通常使用的文件大小是 100-500MB)
如果您已经有小文件中的数据,并且您想要合并它,据我所知,您将必须使用 Spark 重新分区来读取它到更少的分区,然后再次写入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)