Spark GraphX算法 - PageRank算法

1.官网地址:

http://spark.apache.org/docs/latest/graphx-programming-guide.html#pagerank

2.demo样例

object PageRankExample {
    
    
  def main(args: Array[String]): Unit = {
    
    
    // Creates a SparkSession.
    val spark = SparkSession
      .builder
      .master("local")
      .appName(s"${this.getClass.getSimpleName}")
      .getOrCreate()
    val sc = spark.sparkContext

    // $example on$
    // Load the edges as a graph
    val graph = GraphLoader.edgeListFile(sc, "data/graphx/followers.txt")
    // Run PageRank
    val ranks = graph.pageRank(0.0001).vertices
    // Join the ranks with the usernames
    val users = sc.textFile("data/graphx/users.txt").map {
    
     line =>
      val fields = line.split(",")
      (fields(0).toLong, fields(1))
    }
    val ranksByUsername = users.join(ranks).map {
    
    
      case (id, (username, rank)) => (username, rank)
    }
    // Print the result
    println(ranksByUsername.collect().mkString("\n"))
    // $example off$
    spark.stop()
  }
}
// scalastyle:on println

data/graphx/followers.txt

2 1
4 1
1 2
6 3
7 3
7 6
6 7
3 7

data/graphx/users.txt

1,BarackObama,Barack Obama
2,ladygaga,Goddess of Love
3,jeresig,John Resig
4,justinbieber,Justin Bieber
6,matei_zaharia,Matei Zaharia
7,odersky,Martin Odersky
8,anonsys

猜你喜欢

转载自blog.csdn.net/yangyijun1990/article/details/106933472