Spark GraphX 基础:图的核心概念与创建
知识点:
GraphX 核心概念:顶点(Vertex)、边(Edge)、三元组(Triplet)
图的存储结构:顶点 RDD、边 RDD、三元组 RDD
GraphX 与 Spark Core 的关系:基于 RDD 实现的图计算框架(Python 不支持,用 Scala 演示)
练习:
用 Scala 创建图,实现顶点和边的基本操作:
import org.apache.spark.graphx.{Graph, VertexId}
import org.apache.spark.rdd.RDD
// 定义顶点RDD(顶点ID,顶点属性)
val vertices: RDD[(VertexId, String)] = sc.parallelize(Seq(
(1L, "张三"),
(2L, "李四"),
(3L, "王五"),
(4L, "赵六")
))
// 定义边RDD(源顶点ID,目标顶点ID,边属性)
val edges: RDD[Edge[String]] = sc.parallelize(Seq(
Edge(1L, 2L, "同学"),
Edge(2L, 3L, "朋友"),
Edge(3L, 4L, "同事"),
Edge(1L, 3L, "亲戚")
))
// 创建图
val graph: Graph[String, String] = Graph(vertices, edges)
// 查看顶点、边、三元组
println("顶点:")
graph.vertices.foreach(println)
println("边:")
graph.edges.foreach(println)
println("三元组:")
graph.triplets.foreach(t => println(s"${t.srcAttr} -> ${t.dstAttr} : ${t.attr}"))
易错:
GraphX 仅支持 Scala/Java,Python 需通过 PySpark 调用外部库或使用 GraphFrames
图的基本组成是顶点和边,三元组是源顶点、边、目标顶点的组合体

浙公网安备 33010602011771号