spark graphx - 在 scala 中创建图形对象列表
spark graphx -creating list of graphs objects in scala
我想把图中的边做成子图。然后我想根据标准加入这些子图并形成派系。基本上我想知道如何创建 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
}
这段代码给出的错误是class Graph
是抽象的,因此无法实例化。有什么方法可以创建图表列表吗?
我的主要问题是如何实例化 Graph 对象?
您需要使用 Graph(vertexRDD, edgeRDD)
而不是 new Graph(vertexRDD, edgeRDD)
。查看 documentation.
中的一些示例
我想把图中的边做成子图。然后我想根据标准加入这些子图并形成派系。基本上我想知道如何创建 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
}
这段代码给出的错误是class Graph
是抽象的,因此无法实例化。有什么方法可以创建图表列表吗?
我的主要问题是如何实例化 Graph 对象?
您需要使用 Graph(vertexRDD, edgeRDD)
而不是 new Graph(vertexRDD, edgeRDD)
。查看 documentation.