首页 > 解决方案 > 如何将图形作为参数传递给Scala中的方法

问题描述

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

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

这是我的课

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
  }
}

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

标签: scalaapache-sparkspark-graphx

解决方案


我找到了解决方案。

这很简单,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
  }
}

推荐阅读