聚合函数以查找分区之间的平均值

我是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来自何处?价值从何而来?

谢谢。

vcx111 回答:聚合函数以查找分区之间的平均值

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3139754.html

大家都在问