Spark Graphx圖計算之aggregateUsingIndex實操!

Spark Graphx圖計算之aggregateUsingIndex實操!


aggregateUsingIndex:根據相同的verticesId,進行reduceFun操作。比如(1,1.0)(1,2.0),操作後成爲(1,3.0)

//屏蔽日誌
    Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
    Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)

    //設置運行環境
    val conf = new SparkConf().setAppName("SNSAnalysisGraphX").setMaster("local[4]")
    val sc = new SparkContext(conf)
    //aggregateUsingIndex操作
    println("*************************************************************")
    val setA: VertexRDD[Int] = VertexRDD(sc.parallelize(0L until 100L).map(id => (id, 2)))
    setA.collect().foreach(println(_))
    println("*************************************************************")
    val rddB: RDD[(VertexId, Double)] = sc.parallelize(0L until 100L).flatMap(id => List((id, 1.0), (id, 2.0)))
    rddB.collect().foreach(println(_))
    println("*************************************************************")
    val setB: VertexRDD[Double] = setA.aggregateUsingIndex(rddB, _ + _)  //根據ID,合併計算相同ID的值
    setB.collect().foreach(println(_))
    println("*************************************************************")
    val setC: VertexRDD[Double] = setA.innerJoin(setB)((id, a, b) => a + b)
    setC.collect().foreach(println(_))

    sc.stop


發佈了17 篇原創文章 · 獲贊 13 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章