尝试循环使用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)]
。任何帮助将不胜感激。
找到了替代方案
val bigjoin3 = bigjoin.map(x => Edge(x._2(0),x._2(1),x._1) )
val mygraph = Graph.fromEdges(bigjoin3, defaultValue = "ignore")
图形将原始索引的所有节点和边缘作为属性。