Spark memorizza i dati intermedi sul disco da un'operazione di shuffle come parte della sua ottimizzazione "sotto il cofano". Quando la scintilla deve ricalcolare una porzione di un grafico RDD, può essere in grado di troncare la linea di un grafico RDD se l'RDD è già presente come effetto collaterale di un precedente shuffle. Ciò può accadere anche se l'RDD non è memorizzato nella cache o persistentemente specificato.
La fonte di questa risposta è il libro O'Reilly Learning Spark di Karau, Konwinski, Wendell & Zaharia. Capitolo 8: Accordatura e debug di Spark. Sezione: Componenti di esecuzione: lavori, attività e fasi.
È possibile impostare "spark.shuffle.spill" su falso per scrivere i dati intermedi nella memoria. – Amos
Perché questa non è un'opzione predefinita? –