循环RDD以使用Scala在Spark中创建图形

问题描述 投票:0回答:1

尝试循环使用RDD并使用每条记录上的数据创建Graphs。代码是这样的:

bigjoin有结构RDD[(String, List[(Long, Long)])]

bigjoin.foreach( a => {
      val imsi = a._1
      val pairs = a._2
      val lsrgraph = Graph.fromEdgeTuples(pairs, defaultValue = "missing")
      // do something else with graph
    })

我的问题是Graph.fromEdgeTuples需要一个RDD[(graphx.VertexId, graphx.VertexId)]而不能弄清楚如何使List[(Long, Long)]成为执行该行的RDD[(Long, Long)]。任何帮助将不胜感激。

rdd spark-graphx
1个回答
0
投票

找到了替代方案

val bigjoin3 = bigjoin.map(x => Edge(x._2(0),x._2(1),x._1) ) val mygraph = Graph.fromEdges(bigjoin3, defaultValue = "ignore")

图形将原始索引的所有节点和边缘作为属性。

© www.soinside.com 2019 - 2024. All rights reserved.