Как создать ребро RDD из входного файла с переменным размером столбца? - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь прочитать очень большой графический файл, который имеет формат:

    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);

Я ожидаю, что СДР будет правильно сформирован для дальнейшей обработки данных.

...