2025/1/16
import org.apache.spark.graphx.{Edge, Graph, VertexId}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object SparkGraphX {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("SparkGraphX").setMaster("local")
val sc = new SparkContext(conf)
val vertices: RDD[(VertexId, String)] = sc.parallelize(Array(
(1L, "Alice"), (2L, "Bob"), (3L, "Charlie")
))
val edges: RDD[Edge[String]] = sc.parallelize(Array(
Edge(1L, 2L, "friend"), Edge(2L, 3L, "follow")
))
val graph = Graph(vertices, edges)
graph.triplets.collect().foreach {
case Edge(srcId, dstId, attr) =>
println(s"${srcId} -> ${dstId} (${attr})")
}
}
}