Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用GraphX'获取图形的连接组件列表;s Java API_Java_Apache Spark_Spark Graphx - Fatal编程技术网

如何使用GraphX'获取图形的连接组件列表;s Java API

如何使用GraphX'获取图形的连接组件列表;s Java API,java,apache-spark,spark-graphx,Java,Apache Spark,Spark Graphx,我是spark和GraphX的新手,我正在尝试了解如何使用GraphX的Java API执行以下操作。我希望生成一个具有以下签名的方法: private <List<Graph<VD, ED>> computeConnectedComponents(Graph<VD, ED> graph){} private下面的代码在scala中,但是应该演示这个想法 返回的图形将包含所有顶点,但每个顶点的属性都将替换为一个VertexId(实际上只是一个Long)

我是spark和GraphX的新手,我正在尝试了解如何使用GraphX的Java API执行以下操作。我希望生成一个具有以下签名的方法:

private <List<Graph<VD, ED>> computeConnectedComponents(Graph<VD, ED> graph){}

private下面的代码在scala中,但是应该演示这个想法

返回的图形将包含所有顶点,但每个顶点的属性都将替换为一个VertexId(实际上只是一个Long),它可以解释为顶点所属的连接组件的id。它也是属于该连接组件的“最低顶点id”

import org.apache.spark.graphx_
导入org.apache.spark.rdd.rdd
val vertexArray=阵列(
(1L,(“A”,28)),
(2L,(“B”,27)),
(3L,(“C”,65)),
(4L,(“D”,42)),
(5L,(“E”,55)),
(6升,(“F”,50)),
(7L,(“G”,53)),
(8L,(“H”,66))
)
//顶点1-6已连接,7和8已连接。
val edgeArray=阵列(
边缘(2L、1L、7),
边缘(2L、4L、2),
边缘(3L、2L、4),
边缘(3L,6L,3),
边缘(4L、1L、1),
边缘(5L、2L、2),
边缘(5L、3L、8),
边缘(5L,6L,3),
边缘(7L、8L、3)
)
val vertexRDD:RDD[(长,(字符串,Int))]=sc.parallelize(vertexArray)
val-edgeRDD:RDD[Edge[Int]=sc.parallelize(edgerray)
val图形:图形[(字符串,Int),Int]=图形(vertexRDD,edgeRDD)
val cc=graph.connectedComponents().vertices.collectAsMap()
抄送foreach{
案例(vertexId,clusterId)=>
println(s“顶点$vertexId属于簇$clusterId”)
}
输出:

Vertex 8 belongs to cluster 7
Vertex 2 belongs to cluster 1
Vertex 5 belongs to cluster 1
Vertex 4 belongs to cluster 1
Vertex 7 belongs to cluster 7
Vertex 1 belongs to cluster 1
Vertex 3 belongs to cluster 1
Vertex 6 belongs to cluster 1

谢谢,这很有帮助!