1

グラフのエッジをサブグラフにしたい。次に、基準に基づいてこれらのサブグラフを結合し、クリークを形成したいと考えています。Graph基本的に、オブジェクトのリストを作成する方法を知りたいです。

Scala で Apache Spark の Graph X API を使用してこれを達成するにはどうすればよいですか?

import org.apache.spark._
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD
import scala.collection.mutable.ArrayBuffer

val cliques = ArrayBuffer[Graph[(String, Int),Int]]()

var edges = sc.textFile("edges.g3").map { 
  line => var fields = line.split("\\s+")

  println(line)

  val vertexArray = Array(
  (fields(0).toLong, (fields(0), 1)),
  (fields(1).toLong, (fields(1), 1)))

  val edgeArray = Array(
  Edge(fields(0).toLong,fields(1).toLong,0)
  )

  val vertexRDD: RDD[(Long, (String, Int))] = sc.parallelize(vertexArray)
  val edgeRDD: RDD[Edge[Int]] = sc.parallelize(edgeArray)

  val graph: Graph[(String, Int),Int] = new Graph(vertexRDD, edgeRDD)

  cliques += graph

}

このコードは、クラスGraphが抽象的であるため、インスタンス化できないというエラーを出します。グラフのリストを作成する方法はありますか?

Graph オブジェクトをインスタンス化する方法は私の主な質問ですか?

4

1 に答える 1

0

代わりにnew Graph(vertexRDD, edgeRDD)を使用する必要がありますGraph(vertexRDD, edgeRDD)ドキュメントでいくつかの例を確認してください。

于 2015-08-11T01:26:10.360 に答える