繁体   English   中英

不使用迭代的Spark RDD计算

[英]Calculations on Spark RDD without using Iterations

我正在尝试实现MAP(平均平均精度),到目前为止一切正常,但是我到达了需要在RDD上进行计算的阶段。 (不使用迭代,则不能选择rdd.collect()

这是最终生成的RDD(实际和预期收视率以及指数),我要在其上进行计算:

JavaPairRDD<Tuple2<Double, Double>, Long> actualAndPredictedSorted = actual.join(predictions).mapToPair(
                new PairFunction<Tuple2<Tuple2<Integer,Integer>,Tuple2<Double,Double>>, Double, Double>() {
                    public Tuple2<Double,Double> call(Tuple2<Tuple2<Integer,Integer>,Tuple2<Double,Double>> t) {
                        return new Tuple2 < Double, Double > (t._2._2, t._2._1);
                    }
        }).sortByKey(false).zipWithIndex();

同样在下面,您可以找到一张图像,解释如何进行计算。 例如,如果用户在rdd中的实际评分高于3/5,则该条目将被计算(绿色视为命中)

在此处输入图片说明

我希望我自己解释一下!

您需要过滤,而不是迭代。

可以通过

  1. 过滤(仅保留符合条件的等级)。
  2. 全部添加
  3. 除以条目数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM