Spark GraphX 应用示例

该博客展示了如何使用Apache Spark的GraphX模块构建一个包含用户合作属性的图。顶点属性包括用户名和职业,边属性表示用户之间的合作关系。通过创建RDD来表示顶点和边,然后将它们组合成一个Graph对象,最终打印出边集合,揭示了用户间的合作关系网络。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构建用户合作关系属性图

        顶点属性

                用户名

                职业

        边属性

                合作关系

 

import org.apache.spark.graphx.{Edge, Graph}
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession

object GraphDemo2 {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("sparkGraph")
      .master("local[*]").getOrCreate()
    val sc = spark.sparkContext
    //没注释的是通过内存创建rdd
//还有一种是读取本地文件
//val graph2: Graph[Int, Int] = GraphLoader.edgeListFile(sc,"in/graph.txt")
    val users: RDD[(Long, (String, String))] = sc.makeRDD(
      Array(
        (3L, ("rxin", "student")),
        (7L, ("jgonzal", "postdoc")),
        (5L, ("franklin", "professor")),
        (2L, ("istocia", "professor"))
      )
    )
//创建边集合
    val relations: RDD[Edge[String]] = sc.makeRDD(
      Array(
      Edge(3L, 7L, "Collaborator"),
      Edge(5L, 3L, "Advisor"),
      Edge(2L, 5L, "Colleague"),
      Edge(5L, 7L, "PI")
    ))
//将得到的顶点rdd和边rdd放入到Graph中
    val graph: Graph[(String, String), String] = Graph(users,relations)
   // graph.triplets.foreach(println)//打印最完整的关系
   // graph.vertices.foreach(println)//打印顶点集合
    graph.edges.foreach(println)//打印边集合
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值