我一直在讀一本書的火花,這例子是從書Scala中如何使用聚合工作?
input = List(1,2,3,4,5,6)
val result = input.aggregate((0, 0))(
(acc, value) => (acc._1 + value, acc._2 + 1),
(acc1, acc2) => (acc1._1 + acc2._1, acc1._2 + acc2._2))
val avg = result._1/result._2.toDouble
我試圖理解它是如何工作的,什麼是在每一個步驟
(0,0)_1和_2在種子值或初始值 該列表被分成月RDD的 可以說RDD1集包含通過這個列表列表(1,2) 環
(ACC,值)
ACC = ???在循環的每次迭代期間值 值= ???在循環的每次迭代期間在列表(1,2)的第一次迭代期間,在循環的每次迭代期間
(acc,value)=>(acc._1 + value,acc._2 + 1) 什麼是acc._1和_2和值
(acc1,acc2)=>(acc1._1 + acc2._1,acc1._2 + acc2._2)) acc1(for 1,2)類似於3,2和acc2(對於3,4)是7,2 和這個函數添加3 + 7和2 + 2 = 10,4和將此值添加到下一組
親愛善良助手,
請不要使用吉格斯sed在斯卡拉,我已經閱讀並且不理解它,因此來求助。
對於列表(1,2)在列表的第一次迭代期間以及在該迭代期間,acc._1和acc._2的值是多少?值是多少?在第二次迭代期間什麼是值?他們的價值觀?
旁白:http://stackoverflow.com/questions/30828056/how-does-aggregate-work-in-scala是密切相關的問題。 –