Particionamento do parquet Spark: grande número de arquivos

Estou tentando aproveitar o particionamento de faísca. Eu estava tentando fazer algo como

data.write.partitionBy("key").parquet("/location")

O problema aqui em cada partição cria um grande número de arquivos parquet, que resultam em leitura lenta, se eu estiver tentando ler no diretório raiz.

Para evitar que eu tentei

data.coalese(numPart).write.partitionBy("key").parquet("/location")

No entanto, isso cria o número numPart de arquivos parquet em cada partição. Agora o tamanho da minha partição é diferente. Então, eu gostaria idealmente de ter coalescência separada por partição. No entanto, isso não parece fácil. Eu preciso visitar toda a partição coalescer para um determinado número e armazenar em um local separado.

Como devo usar o particionamento para evitar muitos arquivos após a gravação?

questionAnswers(2)

yourAnswerToTheQuestion