import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object GraphXExample {
def main(args: Array[String]): Unit = {
// 创建 SparkConf 和 SparkContext
val conf = new SparkConf().setAppName("GraphXExample").setMaster("local[*]")
val sc = new SparkContext(conf)
try {
// 创建顶点和边的 RDD
val vertices: RDD[(VertexId, String)] = sc.parallelize(Seq(
(1L, "Alice"),
(2L, "Bob"),
(3L, "Charlie"),
(4L, "David"),
(5L, "Emma")
))
val edges: RDD[Edge[Double]] = sc.parallelize(Seq(
Edge(1L, 2L, 1.0),
Edge(2L, 3L, 1.0),
Edge(3L, 4L, 1.0),
Edge(4L, 5L, 1.0),
Edge(5L, 1L, 1.0)
))
// 创建 Graph 对象
val defaultVertex = ("Default")
val graph = Graph(vertices, edges, defaultVertex)
// 运行 PageRank 算法
val ranks = graph.pageRank(0.0001).vertices
// 输出结果
println("PageRank Results:")
ranks.collect().foreach(println)
} finally {
// 关闭 SparkContext
sc.stop()
}
}
}
在这个例子中,我们创建了一个包含五个节点的图,每个节点代表一个人,边代表人与人之间的关系。然后,我们运行 PageRank 算法来计算每个节点的重要性得分,并输出结果。请记得替换顶点和边的数据以适应你的具体场景。
转载请注明出处:http://www.zyzy.cn/article/detail/9375/Spark