Here are the definitions of the function:
Scala:
aggregate[B](z: => B)(seqop: (B, A) => B, combop: (B, B) => B): B
Spark RDD:
aggregate[B](z: B)(seqop: (B, A) => B, combop: (B, B) => B): B
I know that the Scala aggregate function is designed to work on parallel collections and the Spark RDD aggregate function is designed to work on distributed collections.
But, Why the z parameter in Scala is in lazy format, while in Spark RDD is in eager format?