0

txt/json保存到S3使用时,我需要一种控制输出文件大小的方法java/scala

例如,我想要一个 10 mb 的滚动文件大小,我如何使用数据帧代码来控制它,

  1. 我已经试验过了spark.sql.files.maxPartitionBytes。这不能提供准确的控制。例如,如果我设置spark.sql.files.maxPartitionBytes=32MB 输出文件的大小为 33 mb。

  2. 其他选项是使用 reparition,df.rdd.reparition(n) 这将创建 n 个文件。n 的值 = 输入文件的大小/卷文件大小,例如输入文件大小 = 200 mb,卷大小 = 32 mb,n = 200/32 = 7。创建 6 个大小为 32 mb 的文件和 1 个 8 mb 文件。

感谢有关控制输出文件大小的任何想法。

谢谢

4

0 回答 0