【问题标题】:Connecting the first two nodes with an edge from two RDDs in GraphX将前两个节点与 GraphX 中两个 RDD 的边连接起来
【发布时间】:2015-06-14 05:45:30
【问题描述】:

我是第一次使用 GraphX,我想逐步构建一个 Graph。所以我需要将前两个节点连接到一条边,知道我有 2 个 RDD(每个都有一个值):

firstRDD: RDD[((Int, Array[Int]), ((VertexId, Array[Int]), Int))]
secondRDD: RDD[((Int, Array[Int]), ((VertexId, Array[Int]), Int))]  

我想将第一个 VertexId 与第二个连接起来。 感谢您的帮助

【问题讨论】:

  • 你是说你有两个 RDD,行数相等。每行都有一个 VertexId,你想将第一个 RDD 中的一个 VertexId 与第二个 RDD 中的一个配对吗?
  • 没错,这就是我想要做的,我希望在配对两个“VertexId”时构建图表

标签: scala apache-spark spark-graphx


【解决方案1】:

基本上,您使用mapcase 语句来挑选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) }

【讨论】:

  • 非常感谢您的帮助
  • 嗨大卫,我可以给我你的电子邮件地址吗?我有一个问题,我想你可以帮我解决它!提前谢谢你
猜你喜欢
  • 1970-01-01
  • 2020-11-10
  • 2019-06-09
  • 2023-01-24
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多