代码:
package org.apache.spark.graphx.learning
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.graphx.Graph.graphToGraphOps
import org.apache.spark.graphx.GraphLoader
object PageRank {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("PageRank").setMaster("local[4]")
val sc = new SparkContext(conf)
// Load the edges as a graph
val graph = GraphLoader.edgeListFile(sc, "/export/servers/spark/data/graphx/followers.txt")
// Run PageRank
val ranks = graph.pageRank(0.0001).vertices
// Join the ranks with the usernames
val users = sc.textFile("/export/servers/spark/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"))
}
}