spark graphx:connectedComponents算子案例演示

一、Spark graphx中 connectedComponents算子用法:返回一个图中所有最大连通子图的顶点集合,其中每个元素是一个(key,value)形式的二元组,key是每个最大连通子图中的顶点,value是该最大连通子图中数值最小的顶点。

二、代码演示:

object GraphDemo {

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[*]").setAppName("graphDemo")
    val sc: SparkContext = new SparkContext(conf)
    //2.构造点集合
    val vartexRDD: RDD[(Long, (String, Int))] = sc.makeRDD(Seq(
      (1L, ("mm", 1)),
      (2L, ("tom", 1)),
      (6L, ("jery", 1)),
      (9L, ("其玉", 1)),
      (5L, ("安安", 1)),
      (7L, ("来了", 1)),
      (16L, ("咯咯", 1)),
      (21L, ("卡卡", 1)),
      (44L, ("a说道", 1)),
      (138L, ("阿达", 1)),
      (133L, ("激光仪", 1)),
      (158L, ("富华", 1))
    ))
    //3.构造边集合
    val edgeRDD: RDD[Edge[Int]] = sc.makeRDD(Seq(
      Edge(1L, 133L, 0),
      Edge(2L, 133L, 0),
      Edge(6L, 133L, 0),
      Edge(9L, 133L, 0),
      Edge(6L, 138L, 0),
      Edge(16L, 138L, 0),
      Edge(21L, 138L, 0),
      Edge(44L, 138L, 0),
      Edge(5L, 158L, 0),
      Edge(7L, 158L, 0)
    ))
    //4.构造图
    val graph: Graph[(String, Int), Int] = Graph(vartexRDD,edgeRDD)
    /**
     * 返回一个图中所有最大连通子图的顶点集合,其中每个元素是一个(key, value)形式的二元组
     * key : 该最大通子图中的每个顶点
     * value : 该最大连通子图中数值最小的那个顶点
     * 例如下面示例的输出结果为(6,1) (2,1) (16,1) (158,5) (7,5) 等内容
     * 因为该图中共有两个最大连通子图,其中一个最大连通子图中的最小顶点是1,另一个的最小顶点是5
     */
    val vertices: VertexRDD[VertexId] = graph.connectedComponents().vertices
    println(vertices.collect().sortBy(_._2).toBuffer);

  }

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bokzmm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值