Как прочитать значения из файла как RDD [Long, List [Long]] из текстового файла? - PullRequest
0 голосов
/ 25 марта 2019

Я новичок в Scala и функциональном программировании и пытаюсь прочитать неориентированный график в Scala из текстового файла.Текстовый файл имеет формат:

1,8,9,10 2,5,6,7 3,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 )  }  )

это даст мне СДР [1,8], поскольку я читаю только первое смежное значение.

Может ли кто-нибудь помочь мне или предоставить мне некоторые ресурсы?

1 Ответ

2 голосов
/ 25 марта 2019

Если у вас есть одна запись в строке, например,

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...