我是第一次使用 GraphX,我想逐步构建一个 Graph。所以我需要将前两个节点连接到一条边,知道我有 2 个 RDD(每个都有一个值):
firstRDD: RDD[((Int, Array[Int]), ((VertexId, Array[Int]), Int))]
secondRDD: RDD[((Int, Array[Int]), ((VertexId, Array[Int]), Int))]
我想将第一个VertexId与第二个连接起来。我感谢您的帮助
我是第一次使用 GraphX,我想逐步构建一个 Graph。所以我需要将前两个节点连接到一条边,知道我有 2 个 RDD(每个都有一个值):
firstRDD: RDD[((Int, Array[Int]), ((VertexId, Array[Int]), Int))]
secondRDD: RDD[((Int, Array[Int]), ((VertexId, Array[Int]), Int))]
我想将第一个VertexId与第二个连接起来。我感谢您的帮助
基本上,您使用map
andcase
语句来挑选 VertexId,然后使用RDD.zip
将它们拼接在一起,然后使用另一个map
来创建最终的 EdgeRDD:
firstRDD.map{
case ((junk1,junk2), ((vertex1, junk3), junk4)) => vertex1
}.zip(
secondRDD.map{
case ((junk1,junk2), ((vertex2, junk3), junk4)) => vertex2
}
).map{ case(vertex1, vertex2) => Edge(vertex1, vertex2, 0) }