社团挖掘
场景介绍
社团挖掘,就是要在一个图(包含顶点和边)上发现群体结构,也就是要把图中的结点进行聚类,构成一个个的群体(社团/社区)。一般认为社团内部的点之间的连接相对稠密,而不同社团的点之间的连接相对稀疏。
算法原理
编程实例
本示例以MCE(极大团)算法来介绍编程示例。
run API
- API
1
run[T: ClassTag](graph: RDD[(T, T)], minK: Int, maxDegree: Int, repartition: Int): (RDD[(Int, T)], RDD[(Int, String)])
- 功能描述
MCE算法时序图如图1所示。
- API描述
- 包名:package org.apache.spark.graphx.lib
- 类名:MaximalCliqueEnumeration
- 方法名:run
- 参数:如表1所示。
- 输出:
RDD[(Int , T)]——结点映射关系:新结点ID 原结点ID
RDD[(Int, String)]——结点所属极大团:新结点ID 极大团编号
- 使用MCE样例
1 2 3 4 5 6 7 8 9
val conf = new SparkConf().setAppName("Maximal Clique Detection") val sc = new SparkContext(conf) val inputData = Array( ("1", "2"), ("1", "3"), ("2", "3"), ("1", "4")) val inputDataRdd = sc.parallelize(inputData) MaximalCliqueEnumeration.run(inputDataRdd, 3, 2000, 1)
- 样例结果
- 结点映射结果
0,4 1,2 2,3 3,1
- 极大团结果
1,c1 2,c1 3,c1
- 结点映射结果
父主题: 图分析算法