我有 vertexRDD
它有两列
(vertexId, uniqueVertexId)
(V1, 1L)
(V2, 2L)
(V3, 3L)
(V4, 4L)
我也有 edgeRDD
```
(srcId, destId)
(V1, V2)
(V2, V3)
(V1, V4)
我怎样才能加入他们的Spark,使边缘rdd将如下所示
(srcId, destId, uniqueSrcId, uniqueDestId)
(V1, V2, 1L, 2L)
(V2, V3, 2L, 3L)
(V1, V4, 1L, 4L)
我尝试了不同的连接,但没有达到预期的输出。谢谢你的帮助。
1条答案
按热度按时间wlp8pajw1#
我将使用java,但我想把它转换成scala很简单。
假设
edgeRDD
有类型JavaPairRDD<String,String>
和vertexRDD
有类型JavaPairRDD<String,Long>
:edgeRDD.join(vertexRDD)
将屈服JavaPairRDD<String,Tuple2<String,Long>>
包含以下内容(我们称之为join1
):然后你就皈依了
join1
变成另一个JavaPairRDD<String,Tuple2<String,Long>>
通过使用map(我们称之为map)重新构造键和值join2
):最后表演
vertexRDD.join(join2)
得到JavaPairRDD<String,Tuple2<Long,Tuple2<String,Long>>>
内容:你可以通过Map
JavaRDD<String>
(或一个新的JavaPairRDD
)通过在Map中适当地组合键和值。我会让你决定。