object shortestPathFinal {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("shortestpath").setMaster("local")
val sc = new SparkContext(conf)
val edgeFile:RDD[String] = sc.textFile("hdfs://127.0.0.1:9000/data01/edge.txt")
val vertexFile:RDD[String] = sc.textFile("hdfs://127.0.0.1:9000/data01/vertex.txt")
//edge
val edge = edgeFile.map { e =>
val fields = e.split(" ")
Edge(fields(0).toLong,fields(1).toLong,fields(2))
}
//vertex
val vertex = vertexFile.map{e=>
val fields = e.split(" ")
(fields(0).toLong,fields(1))
}
val graph = Graph(vertex,edge,"").persist()
println(graph.edges.collect.mkString("\n"))
}
}
顶点信息
1 2
1 3
1 4
2 3
3 4
4 5
5 1
边信息
1 2 2
1 3 5
1 4 1
2 3 2
3 4 2
4 5 3
5 1 2
其中 第三列为 边的属性 即权值 (或两城市距离)
notice:用GraphLoader.edgeListFile 读入文件 边的属性默认为1。