Apache spark Spark结构化流媒体中如何控制输出文件大小

Apache spark Spark结构化流媒体中如何控制输出文件大小,apache-spark,spark-structured-streaming,Apache Spark,Spark Structured Streaming,我们正在考虑在一个项目中使用Spark结构化流媒体。输入和输出是S3木桶上的拼花文件。是否可以以某种方式控制输出文件的大小?我们的目标是10-100MB大小的输出文件。 据我所知,在传统的批处理方法中,我们可以通过根据输入数据集的大小调整分区的数量来确定输出文件的大小,在结构化流媒体中是否可能出现类似的情况?在Spark 2.2或更高版本中,最佳选项是设置Spark.sql.files.maxRecordsPerFile spark.conf.set(“spark.sql.files.maxRe

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

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

spark.conf.set(“spark.sql.files.maxRecordsPerFile”,n)
其中,
n
被调整以反映行的平均大小

  • -限制每个文件写入的最大记录数

谢谢!奇怪的是,官方文件中没有记载。它应该消除过大的文件。你知道怎么处理太小的文件吗?另外,我在这里找到了类似的选项
spark.sql.files.maxPartitionBytes
maxPartitionBytes
是读卡器选项,而不是写卡器选项。至于你的另一个问题-合并/重新分区是唯一的选择,实际上不是一个好的或可调的选择。是否接受作为所有者的答案?如果你是好的,请注意接受答案关闭此线程