Explicar a funcionalidade agregada no Spark

Estou procurando uma explicação melhor da funcionalidade agregada que está disponível via spark em python.

O exemplo que eu tenho é o seguinte (usando o pyspark da versão 1.2.0 do Spark)

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])))

Resultado:

(10, 4)

Eu recebo o resultado esperado(10,4) que é soma de1+2+3+4 e 4 elementos. Se eu alterar o valor inicial passado para a função agregada para(1,0) de(0,0) Eu recebo o seguinte 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])))

Resultado:

(19, 4)

O valor aumenta em 9. Se eu mudar para(2,0), o valor vai para(28,4) e assim por diante.

Alguém pode me explicar como esse valor é calculado? Eu esperava que o valor subisse 1 e não 9, esperava ver(11,4) estou vendo(19,4).

questionAnswers(7)

yourAnswerToTheQuestion