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?