SparkGraphXTest.scala

本文介绍了一个使用 Apache Spark 的 GraphX 模块进行社会网络分析的例子。通过创建顶点和边的数据集,构造了图结构,并对图进行了过滤和查询操作。此外,还展示了如何利用图的三元组来生成描述性的事实。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * Created by root on 9/8/15.
 */
import org.apache.spark._
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD

object SparkGraphXTest {
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("graphx app").setMaster("local")
    val sc = new SparkContext(conf)
    val users: RDD[(VertexId, (String, String))] = sc.parallelize(
      Array((3L, ("rxin", "student")), (7L, ("jgonzal", "postdoc")), (5L, ("franklin", "prof")), (2L, ("istoica", "prof"))))
    val relationships: RDD[Edge[String]] = sc.parallelize(
      Array(Edge(3L, 7L, "collab"), Edge(5L, 3L, "advisor"), Edge(2L, 5L, "colleague"), Edge(5L, 7L, "pi")))
    val defaultUser = ("John Doe", "Missing")
    val graph = Graph(users, relationships, defaultUser)
    val count1 = graph.vertices.filter{ case (id, (name, pos)) => pos == "postdoc" }.count()
    val count2 = graph.edges.filter(e => e.srcId > e.dstId).count()
    val count3 = graph.edges.filter{ case Edge(src, dst, prop) => src > dst }.count()
    println(count1)
    println(count2)
    println(count3)
    val facts: RDD[String] = graph.triplets.map(triplet =>
      triplet.srcAttr._2 + " is the " + triplet.attr + " of " +triplet.dstAttr._2)
    facts.collect().foreach(println(_))

    val users2: RDD[(VertexId, (String, String ,String))] = sc.parallelize(
      Array((3L, ("rxin", "student", "20")), (7L, ("jgonzal", "postdoc", "22")), (5L, ("franklin", "prof", "24")), (2L, ("istoica", "prof", "26"))))
    val relationships2: RDD[Edge[String]] = sc.parallelize(
      Array(Edge(3L, 7L, "collab"), Edge(5L, 3L, "advisor"), Edge(2L, 5L, "colleague"), Edge(5L, 7L, "pi")))
    val defaultUser2 = ("Amy Sun", "aaa", "18")
    val graph2 = Graph(users2, relationships2, defaultUser2)
    val facts2: RDD[String] = graph2.triplets.map(triplet =>
      triplet.srcAttr.toString() + " is the " + triplet.attr + " of " +triplet.dstAttr.toString())
    facts2.collect().foreach(println(_))
  }
}

 

转载于:https://www.cnblogs.com/sunflower627/p/4795435.html

Error:scalac: Error: Error compiling the sbt component 'compiler-interface-2.10.0-52.0' sbt.internal.inc.CompileFailed: Error compiling the sbt component 'compiler-interface-2.10.0-52.0' at sbt.internal.inc.AnalyzingCompiler$.handleCompilationError$1(AnalyzingCompiler.scala:331) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$4(AnalyzingCompiler.scala:346) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$4$adapted(AnalyzingCompiler.scala:341) at sbt.io.IO$.withTemporaryDirectory(IO.scala:376) at sbt.io.IO$.withTemporaryDirectory(IO.scala:383) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2(AnalyzingCompiler.scala:341) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2$adapted(AnalyzingCompiler.scala:335) at sbt.io.IO$.withTemporaryDirectory(IO.scala:376) at sbt.io.IO$.withTemporaryDirectory(IO.scala:383) at sbt.internal.inc.AnalyzingCompiler$.compileSources(AnalyzingCompiler.scala:335) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$.org$jetbrains$jps$incremental$scala$local$CompilerFactoryImpl$$getOrCompileInterfaceJar(CompilerFactoryImpl.scala:123) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.$anonfun$getScalac$1(CompilerFactoryImpl.scala:55) at scala.Option.map(Option.scala:163) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:47) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:25) at org.jetbrains.jps.incremental.scala.local.CachingFactory.$anonfun$createCompiler$3(CachingFactory.scala:24) at org.jetbrains.jps.incremental.scala.local.Cache.$anonfun$getOrUpdate$2(Cache.scala:20) at scala.Option.getOrElse(Option.scala:138) at org.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:19) at org.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:24) at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:34) at org.jetbrains.jps.incremental.scala.remote.Main$.compileLogic(Main.scala:117) at org.jetbrains.jps.incremental.scala.remote.Main$.handleCommand(Main.scala:109) at org.jetbrains.jps.incremental.scala.remote.Main$.serverLogic(Main.scala:95) at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:53) at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319)
最新发布
08-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值