¿Por qué resultados inconsistentes usando la resta en reducir?

Dado lo siguiente:

val rdd = List(1,2,3)

lo asumordd.reduce((x,y) => (x - y)) volvería-4 (es decir.(1-2)-3=-4), pero volvió2.

¿Por qué?

Respuestas a la pregunta(3)

Su respuesta a la pregunta