O que é spark.driver.maxResultSize?

oref diz:

Limite do tamanho total dos resultados serializados de todas as partições para cada ação do Spark (por exemplo, coletar). Deve ter pelo menos 1 milhão ou 0 para ilimitado. Os trabalhos serão cancelados se o tamanho total estiver acima desse limite. Ter um limite alto pode causar erros de falta de memória no driver (depende de spark.driver.memory e sobrecarga de memória de objetos na JVM). Definir um limite adequado pode proteger o driver contra erros de falta de memória.

O que esse atributo faz exatamente? Quero dizer, a princípio (já que não estou lutando com um trabalho que falha devido a erros de falta de memória), pensei em aumentar isso.

Pensando bem, parece que esse atributo define o tamanho máximo do resultado que um trabalhador pode enviar ao driver, portanto, deixá-lo no padrão (1G) seria a melhor abordagem para proteger o driver.

Mas, neste caso, o trabalhador terá que enviar mais mensagens; portanto, a sobrecarga será apenas para que o trabalho seja mais lento?

Se eu entendi corretamente, supondo que um trabalhador queira enviar 4G de dados ao motorista, então terspark.driver.maxResultSize=1G, fará com que o trabalhador envie 4 mensagens (em vez de 1 com número ilimitadospark.driver.maxResultSize) Nesse caso, aumentar esse atributo para proteger meu motorista de ser assassinado por Yarn deve estar errado.

Mas ainda permanece a pergunta acima. Quero dizer, e se eu definir para 1M (o mínimo), será a abordagem mais protetora?

questionAnswers(1)

yourAnswerToTheQuestion