加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何在graphx中构建图形

发布时间:2020-12-16 09:08:11 所属栏目:安全 来源:网络整理
导读:我是 scala和graphx的新手,在将tsv文件转换为图形时遇到问题. 我有一个平面标签分隔文件,如下所示: n1 P1 n2 n3 P1 n4 n2 P2 n3 n3 P2 n1 n1 P3 n4 n3 P3 n2 其中n1,n2,n3,n4是图的节点,R1,P2,P3是应该在节点之间形成边的属性. 如何在SPARK GraphX中根据上
我是 scala和graphx的新手,在将tsv文件转换为图形时遇到问题.
我有一个平面标签分隔文件,如下所示:

n1 P1 n2
n3 P1 n4
n2 P2 n3
n3 P2 n1
n1 P3 n4
n3 P3 n2

其中n1,n2,n3,n4是图的节点,R1,P2,P3是应该在节点之间形成边的属性.

如何在SPARK GraphX中根据上述文件构建图形?
示例代码非常有用.

解决方法

有一些代码(当然你应该使用sbt在jar文件中构建它):

package vinnie.pooh

import org.apache.spark.SparkContext._
import org.apache.spark._
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD


object Main {
  def main(args: Array[String]) {

    if (args.length != 1) {
      System.err.println(
        "Should be one parameter: <path/to/edges>")
      System.exit(1)
    }

    val conf = new SparkConf()
      .setAppName("Load graph")
      .setSparkHome(System.getenv("SPARK_HOME"))
      .setJars(SparkContext.jarOfClass(this.getClass).toList)

    val sc = new SparkContext(conf)

    val edges: RDD[Edge[String]] =
      sc.textFile(args(0)).map { line =>
        val fields = line.split(" ")
        Edge(fields(0).toLong,fields(2).toLong,fields(1))
      }

    val graph : Graph[Any,String] = Graph.fromEdges(edges,"defaultProperty")


    println("num edges = " + graph.numEdges);
    println("num vertices = " + graph.numVertices);
  }
}

我有edge.txt:

1 Prop12 2
2 Prop24 4
4 Prop45 5
5 Prop52 2
6 Prop65 7

然后,例如,您可以在本地启动它:

$SPARK_HOME> ./ bin / spark-submit –class vinnie.pooh.Main –master local [2]?/ justBuiltJar.jar~ / edge.txt

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读