run(edgeInfo: RDD[(Long, Long, Double)],part: Int,minLoopLen: Int,maxLoopLen: Int,minRate: Double,maxRate: Double): RDD[Array[Long]]
根据指定约束条件计算有向有权关系网络中环路检测信息,即有向图中首尾相连的路径:
如果存在,则该路径形成一个环路。
带权重的有向图边数据
参数名称 |
参数含义 |
取值类型 |
---|---|---|
graph |
带权重的有向图边数据 |
RDD[(Long, Long, Double)],边权重为正数 |
part |
计算时分区个数 |
Int如100等,正整数 |
minLoop |
最小的环路长度 |
Int,一般取值为2以上,正整数 |
maxLoop |
最大的环路长度 |
Int,一般取值为10以下,正整数,需大于等于minLoop |
minRate |
最小的边权比 |
Double如0.8等,正浮点数 |
maxRate |
最大的边权比 |
Double如1.2等,正浮点数,需大于等于minRate |
CycleDetectionWithConstrains样例:
val conf = new SparkConf().setAppName("Cycle Detection").setMaster(host) val sc = new SparkContext(conf) val input = sc.parallelize(Array((1, 2, 11), (2, 3, 12), (2, 4, 12), (3, 4, 13), (4, 1, 12))) .map(f => (f._1.toLong, f._2.toLong, f._3.toDouble)) val part = 1 val minLoopLen = 2 val maxLoopLen = 10 val minRate = 0.8 val maxRate = 1.2 val cycles = CycleDetectionWithConstrains.run(input, part, minLoopLen, maxLoopLen, minRate, maxRate)
每一行表示一个环路信息,以节点ID为标识,符合上述约束。
1,2,4 1,2,3,4