大数据实验指导手册19-spark graphx_第1页
大数据实验指导手册19-spark graphx_第2页
大数据实验指导手册19-spark graphx_第3页
大数据实验指导手册19-spark graphx_第4页
大数据实验指导手册19-spark graphx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验十 Spark实验Spark的图计算框架GraphXGraphX要求实验结束时,每位学生能完成正确运行SparkGraphX的示例程序,正确上传到集SparkGraphX是一个分布式图处理框架,SparkGraphXSpark平台提供对图计算社交网络中人与人之间有很多关系链,例如、、、,这些都机处理,SparkGraphXSpark来处理的,所以天然就是一个分布式的图处图的分布式或者并行处理其实是把这拆分成很多的子图,然后我们分别对这些子本实验主要可以分为在IDEA安装ScalaScala的程序、打包提交程序和在 lijIDEA中安装Scala的插注:InliJIDEA对Scala编程比较方便。如不习惯请参考网上Eclipse版本FilePlugins->输入”Scala”->Scala的项目->点击右侧绿色按钮Install->IDEA。新建Scala点击当前IDEA中的project然后new->module->选择Scala->next->输modulenamesparkgraphx”点击新建的sparkgraphx的module然后”AddFrameworkSupport”选择maven添加mavenpom.xml<artifactId>spark-graphx新建Scala打开项 然后右键新建package命名为test,然后新建Scalaclass将Kindt由packageimportorg.apache.log4j.{Level,packageimportorg.apache.log4j.{Level,Logger}importorg.apache.spark.graphx.importobjectGraphXExampledefmain(args:Array[String]){valconf=newSparkConf().setAppName("SimpleGraphX").setMaster("local")valsc=newSparkContext(conf)valvertexArray=Array((1L,("Alice",28)),(2L,("Bob",(3L, ",(4L,("David",(5L,("Ed",(6L,("Fran",)valedgeArray=Array(Edge(2L,1L,7),Edge(2L,4L,Edge(3L,2L,Edge(3L,6L,Edge(4L,1L,Edge(5L,2L,Edge(5L,3L,Edge(5L,6L,)valvertexRDD:RDD[(Long,(String,Int))]=sc.parallelize(vertexArray)valedgeRDD:RDD[Edge[Int]]=sc.parallelize(edgeArray)valgraph:Graph[(String,Int),Int]=Graph(vertexRDD, 大于30的顶点:")graph.verticesfilter{case(id,(name,age))=>age>30}.collectforeach{case(id,(name,age))=>println(s"$nameis$age")}graph.edgesfilter(e=>e.attr>5).collectforeach(e=>println(s"${e.srcId}to${e.dstId}att${e.attr}"))println("列出边属性>5的for(triplet<-graph.tripletsfilter(t=>t.attr>5).collect){}defmax(a:(VertexId,Int),b:(VertexId,Int)):(VertexId,Int)={if(a._2>b._2)aelseb}println("maxofoutDegrees:"+graph.outDegrees.reduce(max)+"maxofinDegrees:"+graph.inDegreesreduce(max)+"maxofDegrees:"+graph.degreesreduce(max))println("顶点的转换操作,顶点age+10:")graphmapVertices{case(id,(name,age))=>(id,(name,age+10))}.vertices.collect.foreach(v=>println(s"${v.2.1}is${v.2.2}"))graphmapEdges(e=>e.attr*2).edges.collectforeach(e=>println(s"${e.srcId}to${e.dstId}println("顶点年纪>30的子图:")valsubGraphgraph.subgraph(vpredid,vdvd._230)subGraph.vertices.collectforeach(v=>println(s"${v._2._1}is${v._2._2}"))subGraph.edges.collect.foreach(e=>println(s"${e.srcId}to${e.dstId}att${e.attr}"))valinDegrees:VertexRDD[Int]=graph.inDegreescaseclassUser(name:String,age:Int,inDeg:Int,outDeg:valinitialUserGraph:Graph[User,Int]=graph.mapVertices{case(id,(name,age))=>User(name,0,valuserGraph=initialUserGraph.outerJoinVertices(initialUserGraph.inDegrees){case(id,u,inDegOpt)=>User(,u.age,inDegOpt.getOrElse(0),u.outDeg)case(id,u,outDegOpt)=>User(uname,u.age,}userGraph.vertices.collectforeach(v=>println(s"${v.2name}inDeg:${v. }}else }(a,b)=>math)}}case(id,u)=>u.inDeg==case(id,property)=>println(property}println("找出5到各顶点的最短:")valsourceId:VertexId=valinitialGraph=graph.mapVertices((id,)=>if(id==sourceId)0.0elseDouble.PositiveInfinity)valsssp=initialGraph.pregel(Double.PositiveInfinity)((id,dist,newDist)=>math.min(dist,newDist),triplet=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论