首页 > 解决方案 > 如何在 Spark Structured Streaming 中控制输出文件的大小

问题描述

我们正在考虑在一个项目中使用 Spark Structured Streaming。输入和输出是 S3 存储桶上的拼花文件。是否可以以某种方式控制输出文件的大小?我们的目标是输出大小为 10-100MB 的文件。据我了解,在传统的批处理方法中,我们可以通过根据输入数据集的大小调整分区数量来确定输出文件的大小,在结构化流中是否有类似的可能?

标签: apache-sparkspark-structured-streaming

解决方案


在 Spark 2.2 或更高版本中,最佳选项是设置spark.sql.files.maxRecordsPerFile

spark.conf.set("spark.sql.files.maxRecordsPerFile", n)

wheren被调整以反映行的平均大小。


推荐阅读