0

我正在尝试在 hdfs 目录中合并小于 512 mb 的小文件。合并后磁盘上的文件大小大于输入大小。有什么方法可以有效地控制大小。

Df=spark.read.parquet("/./")
Magic_number=(total size of input file / 512)

Df.repartition(Magic_number).write.save("/./")

重新分区导致大量洗牌,输入文件采用镶木地板格式。

4

1 回答 1

0
import org.apache.spark.util.SizeEstimator
val numBytes = SizeEstimator.estimate(df)

val desiredBytesPerFile = ???

df.coalesce(numBytes / desiredBytesPerFile).write.save("/./")

这将为您提供大约每个文件的写入字节数。

于 2021-09-27T17:04:47.770 回答