Объясните совокупную функциональность в Spark

Я ищу лучшее объяснение совокупной функциональности, которая доступна через spark в python.

У меня есть следующий пример (с использованием pyspark из версии 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])))

Выход:

(10, 4)

Я получаю ожидаемый результат(10,4) которая является суммой1+2+3+4 и 4 элемента. Если я изменю исходное значение, переданное статистической функции на(1,0) от(0,0) Я получаю следующий результат

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

Выход:

(19, 4)

Значение увеличивается на 9. Если я изменю его на(2,0), значение идет в(28,4) и так далее.

Может кто-нибудь объяснить мне, как это значение рассчитывается? Я ожидал, что значение увеличится на 1, а не на 9, ожидается(11,4) вместо этого я вижу(19,4).

Ответы на вопрос(7)

Ваш ответ на вопрос