Partición de parquet Spark: gran cantidad de archivos

Estoy tratando de aprovechar la partición de chispas. Estaba tratando de hacer algo como

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

El problema aquí es que cada partición crea una gran cantidad de archivos de parquet que resultan en una lectura lenta si estoy tratando de leer desde el directorio raíz.

Para evitar eso intenté

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

Sin embargo, esto crea el número numPart de archivos de parquet en cada partición. Ahora mi tamaño de partición es diferente. Por lo tanto, me gustaría tener una fusión separada por partición. Sin embargo, esto no parece una cosa fácil. Necesito visitar todas las particiones que se unen a un número determinado y almacenarlas en una ubicación separada.

¿Cómo debo usar la partición para evitar muchos archivos después de escribir?

Respuestas a la pregunta(2)

Su respuesta a la pregunta