import org.apache.spark.util.SizeEstimator
val inputDF2 : Long = SizeEstimator.estimate(inputDF.rdd)
//find its appropiate number of partitions
val numPartitions : Long = (inputDF2/134217728) + 1
//write it out with that many partitions
val outputDF = inputDF.repartition(numPartitions.toInt)
1条答案
按热度按时间q3qa4bjr1#
spark将在写入之前在对象上写入与分区数量相同的文件。它可能真的很低效。若要减少零件文件的总数,请尝试此操作,它将检查对象的总字节大小,并将其重新分区为+1最佳大小。