Explicar la funcionalidad agregada en Spark

Estoy buscando una mejor explicación de la funcionalidad agregada que está disponible a través de spark en python.

El ejemplo que tengo es el siguiente (usando pyspark de la versión Spark 1.2.0)

sc.parallelize([1,2,3,4]).aggregate(
  (0, 0),
  (lambda acc, value: (acc[0] + value, acc[1] + 1)),
  (lambda acc1, acc2: (acc1[0] + acc2[0], acc1[1] + acc2[1])))

Salida:

(10, 4)

Obtengo el resultado esperado(10,4) que es la suma de1+2+3+4 y 4 elementos. Si cambio el valor inicial pasado a la función agregada a(1,0) de(0,0) Obtengo el siguiente resultado

sc.parallelize([1,2,3,4]).aggregate(
    (1, 0),
    (lambda acc, value: (acc[0] + value, acc[1] + 1)),
    (lambda acc1, acc2: (acc1[0] + acc2[0], acc1[1] + acc2[1])))

Salida:

(19, 4)

El valor aumenta en 9. Si lo cambio a(2,0), el valor va a(28,4) y así.

¿Alguien puede explicarme cómo se calcula este valor? Esperaba que el valor aumentara en 1, no en 9, esperaba ver(11,4) en cambio estoy viendo(19,4).

Respuestas a la pregunta(7)

Su respuesta a la pregunta