我是Scala
和函数式编程的新手,我正在尝试从文本文件中将无向图读入Scala。文本文件的格式为:
1,8,9,102,5,6,73,1,2
其中表示节点1连接到节点8、9和10(邻接列表(,节点2连接到节点5、6和节点7等等。
我试图将它们解读为RDD[1,包含所有邻接节点的列表]
var graphNodes = sc.textFile(*path to file*).map( line => { val a = line.split(",")
( a(0).toLong, a(1).toLong ) } )
这将给我 RDD[1,8],因为我只读取第一个相邻值。
谁能帮助我或为我提供一些资源?
假设每行有一条记录,例如
sc.parallelize(List("1,8,9,10", "2,5,6,7", "3,1,2"))
.map(_.split(",").map(_.toLong))
.map {
case Array(head, tail @ _*) => (head, tail)
}.foreach(println)
输出:
(2,Vector(5, 6, 7))
(3,Vector(1, 2))
(1,Vector(8, 9, 10))