我是Spark和Scala的新手。我有一个正在解决的问题。花园中有四个象限:南,北,东和西-每个象限在一个火花分区中表示。列表代表从每个象限中摘出的花朵数量-每个象限有3个数字,因此总数为12。我希望能够找到每个象限中采摘的花朵的平均值,然后找到这些象限的总体平均值。
val flowers = sc.parallelize(List(11,12,13,24,25,26,35,36,37,15,16),4)
val flowersandpickers = flowers.aggregate((0,0)) (
(acc,value) => (acc._1 + value,acc._2 +1),(acc1,acc2) => (acc1._1 + acc2._1,acc1._2 + acc2._2)
)
val avg = flowersandpickers._1/ flowersandpickers._2.toDouble
有人可以帮助我了解此代码的工作原理吗? (0,0)是集合的(sum,count)的初始化。 (acc,value)->这是如何初始化的? acc._1和acc._2来自何处?价值从何而来?
谢谢。