Spark 写文件
Repartition
Spark 输出文件数量
假设每个 Task 的输出数据都包含了全部 8 个分区值,那么最终的文件生成情况如下:
总文件数 = Task 数量 × 分区组合数
假设:
Task 数量:200
分区组合数:8 个 (from_cluster 和 ds 的组合)
则:
总文件数:200 × 8 = 1600 个文件
文件数量优化解决方案
- 参考 kyuubi 方案
https://wforget.github.io/2022/06/04/Kyuubi-%E4%BC%98%E5%8C%96%E5%B0%8F%E6%96%87%E4%BB%B6/
REPARTITION hint 方案 风险提示
INSERT OVERWRITE TABLE table PARTITION (from_cluster,ds