Мне нужно перераспределить геоданные по квадке. Прежде всего, все данные довольно сбалансированы, но немногие разделы в 500 раз больше других. Таким образом, это вызывает очень несбалансированную стадию разделения, например, 20-30 из 3500 задач на 98% медленнее, чем другие. Есть ли хорошая стратегия в этом случае?
Мне нужно сделать следующее:
stage.repartition(partitionColumns.map(new org.apache.spark.sql.Column(_)):_*)
.write.partitionBy(partitionColumns:_*)
.format("parquet")
.option("compression", "gzip")
.mode(SaveMode.Append)
.save(destUrl)