Executando um código pyspark simples que está sendo executado em 1 driver (16 núcleos) e 2 nós de trabalho (total de 32 núcleos). Tenho dados de entrada no valor de 1 hora para dados de aproximadamente 33 GB de um único dia. Os dados de entrada também possuem uma coluna país e o número de países distintos nos dados é 968.
Estou escrevendo os dados particionados por data e país.
results.write.partitionBy("date","country").format("delta").save("<path>")
O estágio que está gravando no local de destino tem um total de 607 tarefas, com 32 tarefas em execução em paralelo [384/607 (32 em execução)].
Pelo meu entendimento,
- spark grava 1 arquivo por partição
- número de tarefas = número de partições
- então número de tarefas = número de partições = número de arquivos
Pergunta - Aqui neste estágio que está gravando no local de destino (160/607 (32 em execução)) eu tenho um total de 607 tarefas, então não devo gravar apenas 607 arquivos. Em vez disso, em cada pasta data + país, foi gerado um número aleatório de arquivos.