2020年10月27日

摘要: 1. subgraph: 返回的对象是一个图,图中包含着的顶点和边分别要满足vpred和epred两个函数。 def subgraph( epred: EdgeTriplet[VD, ED] => Boolean = (x => true), vpred: (VertexId, VD) => Boo 阅读全文
posted @ 2020-10-27 18:37 happygril3 阅读(571) 评论(0) 推荐(0)
摘要: joinvertices: graph1.joinVertices(graph2)((id2, VD1, data2) = > VD2) 这里的id2是graph2的点, data2是graph2的属性,这样写就会用新属性VD2覆盖老属性VD1outerjoinvertices: 这个操作其实跟上面 阅读全文
posted @ 2020-10-27 18:06 happygril3 阅读(203) 评论(0) 推荐(0)
摘要: 节点与边的变换操作 def mapVertices[VD2](map: (VertexID, VD) => VD2): Graph[VD2, ED] def mapEdges[ED2](map: Edge[ED] => ED2): Graph[VD, ED2] def mapEdges[ED2](m 阅读全文
posted @ 2020-10-27 18:04 happygril3 阅读(155) 评论(0) 推荐(0)
摘要: graph包含三个基本的类集合视图 val vertices: VertexRDD[VD] val edges: EdgeRDD[ED] val triplets: RDD[EdgeTriplet[VD, ED]],即可理解为:RDD(srcId,srcAttr,dstId,dstAttr,attr 阅读全文
posted @ 2020-10-27 18:00 happygril3 阅读(66) 评论(0) 推荐(0)
摘要: 1. GraphX的框架 1.1图存储模式 边分割(Edge-Cut): 每个顶点都存储一次,但有的边会被打断分到两台机器上。 优点:节省存储空间; 缺点:对图进行基于边的计算时,对于一条两个顶点被分到不同机器上的边来说,要跨机器通信传输数据,内网通信流量大。 点分割(Vertex-Cut) 每条边 阅读全文
posted @ 2020-10-27 14:50 happygril3 阅读(719) 评论(0) 推荐(0)
摘要: 使用场景 package graphx object case03 { def main(args: Array[String]): Unit = { //TODO 1.表示函数的返回类型 def double(x:Int):Int=x*2 //定义一个函数变量 var x:(Int)=>Int=d 阅读全文
posted @ 2020-10-27 12:03 happygril3 阅读(130) 评论(0) 推荐(0)
摘要: 如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子集,对于这个参数范围外的参数则抛出异常,这样的函数就是偏函数(顾名思异就是这个函数只处理传入来的部分参数) package graphx object case02 { def main(args: Array[String]): Uni 阅读全文
posted @ 2020-10-27 11:16 happygril3 阅读(118) 评论(0) 推荐(0)

导航