我正在尝试读取一个非常大的图形文件,其格式为:
1
2,3
3,2,1
7,4,3
4,3,4,6
5,6
6,5,7,1,5,3,4,2
我正在尝试创建边缘RDD,但是我一直无法正确读取文件并将值解析为正确的边缘。以下是控制台中的错误:
found : Unit
required: (org.apache.spark.graphx.VertexId, org.apache.spark.graphx.VertexId)
for(i <- 1 to (a.length-1))
^
我不知道该怎么做。我们以前的列数是固定的,因此访问数据从来都不是问题,但由于现在每个列的大小都是动态的,所以我陷入了这一部分。
基本上,这个迷你项目的目标是找到输入图的连接组件。
我们非常感谢您的帮助。预先感谢。
var graphData= sc.textFile(args(0));
val edgesRdd: RDD[(VertexId, VertexId)] =
graphData.map(line => { val a=line.split(",")
for(i <- 1 to (a.length-1))
(Edge(a(0).toLong, a(i).toLong))
})
val graph= Graph.fromEdgeTuples(edgesRdd, 1);
graph.triplets.collect.foreach(println);
我希望可以对RDD进行适当的格式以进行进一步的数据处理。