我必须按四键重新划分地理数据。基本上所有的数据都很平衡,但是很少有分区比其他分区大500倍。所以它会导致非常不平衡的分区阶段,比如3500个任务中有20-30个任务比其他任务慢98%。在这种情况下有什么好的策略吗?
我接下来要做的是:
stage.repartition(partitionColumns.map(new org.apache.spark.sql.Column(_)):_*) .write.partitionBy(partitionColumns:_*) .format("parquet") .option("compression", "gzip") .mode(SaveMode.Append) .save(destUrl)
这个 .repartition
.repartition
如果你把它放在一边 .write.partitionBy... ,仍然会得到相同的目录结构,每个目录中只有多个文件。
.write.partitionBy...