簡體   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