如何将图形作为参数传递给 Scala 中的方法

how to pass a Graph as parameter to a Method in Scala

我是 Scala 的新手,我想创建一个 class 来管理图形任务。 所以我想将一个 Graph 对象作为参数传递给我的 class 。 例如:

val graph = Graph(users, edges, nowhere)
users: RDD[(Long, String)],
edges: RDD[Edge(Long, Long, String)]
nowhere: String

这是我的 class

import org.apache.spark._
import org.apache.spark.rdd.RDD
import org.apache.spark.util.IntParam
// import classes required for using GraphX
import org.apache.spark.graphx._

class GraphAnalyzer(_graph: ???? ) {
  val graph:???? =_graph

  def GetVertecies(str: String): Long = {
    val nodesCount: Long =graph.vertices.count()
    nodesCount
  }
}

我不知道我应该在“???”中做什么?我的一部分 class。 谁能帮我做这件事?

我找到了解决方案。

这很简单,IDE 可以帮助我们。 Eclipse 向我展示了一个工具提示。基于图结构,它实际上取决于图的顶点和边。

我使用了以下类型并且有效:

import org.apache.spark._
import org.apache.spark.rdd.RDD
import org.apache.spark.util.IntParam
// import classes required for using GraphX
import org.apache.spark.graphx._

class GraphAnalyzer(_graph: Graph[String, Int]  ) {
  val graph:Graph[String, Int]  =_graph

  def GetVertecies(): Long = {
    val nodesCount: Long = graph.vertices.count().toLong
    nodesCount*100
  }
}