阿帕奇星火;图X;如何合并两个边缘RDD

Apache Spark; Graph X ; How to combine two edge RDD

我正在尝试将 Edge RDD 与 RDD(Long,Long,String) 结合起来。我的边缘 RDD 看起来像:

val myEdges=sc.makeRDD(Array(Edge(1L,2L,"friend")))

我想要组合的是名为 edgeList 的元组 3,如下所示:

(5,3,Neighbour)
(2,3,Brother)

现在,如果我尝试使用联合操作合并这两个 RDD:

val newEdges=myEdges ++ edgeList 

val newEdges=myEdges.union(edgeList)

我收到以下错误:

type mismatched; expect RDD[Edge[String]] , actual RDD[(Long,Long,String)].

我的问题是如何将RDD[(Long,Long,String)]转换成RDD[Edge[String]]

您可以使用 map:

val edgeList: RDD[(Long, Long, String)] = sc.makeRDD[(Long, Long, String)](Seq((1L, 1L, "first"), (2L, 2L, "second"), (3L, 3L, "third")))
val result = edgeList.map {
  case (srcId, dstId, attr) => Edge(srcId, dstId, attr)
}
myEdges ++ result // will compile