《2019最新快速玩转SparkGraphx系列【一】》

 https://www.bilibili.com/video/BV1s4411e7Pz?p=7

2019最新快速玩转SparkGraphx系列【千锋大数据】

 

https://blog.csdn.net/zcf1002797280/article/details/51075656/

https://github.com/linuxcer/Blog-and-Exercises/blob/master/BLOG/GraphX%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%EF%BC%88Graph%E6%9E%84%E5%BB%BA%E8%BF%87%E7%A8%8B%EF%BC%89.md

https://endymecy.gitbooks.io/spark-graphx-source-analysis/content/build-graph.html

  构建图的过程很简单,分为三步,它们分别是构建边EdgeRDD、构建顶点VertexRDD、生成Graph对象。下面分别介绍这三个步骤。

 StorageLevel = StorageLevel.MEMORY_ONLY

toEdgePartition():对边进行排序(按srcId),排序是为了遍历时顺序访问,加快访问速度;填充localSrcIds, localDstIds, data, index, global2local, local2global, vertexAttrs;可以通过根据本地下标取取VertexId,也可以根据VertexId取本地下标,取相应的属性。

 

 

 

 

上面是转换操作

下面是结构操作:

https://www.bookstack.cn/read/spark-graphx-source-analysis/operators-structure.md

https://github.com/endymecy/spark-graphx-source-analysis

reverse操作返回一个新的图,这个图的边的方向都是反转的。例如,这个操作可以用来计算反转的PageRank。因为反转操作没有修改顶点或者边的属性或者改变边的数量,所以我们可以
在不移动或者复制数据的情况下有效地实现它。

subgraph操作利用顶点和边的判断式(predicates),返回的图仅仅包含满足顶点判断式的顶点、满足边判断式的边以及满足顶点判断式的triplesubgraph操作可以用于很多场景,如获取感兴趣的顶点和边组成的图或者获取清除断开连接后的图。该代码显示,subgraph方法的实现分两步:先过滤VertexRDD,然后再过滤EdgeRDD。如上,过滤VertexRDD比较简单,我们重点看过滤EdgeRDD的过程。

  mask操作构造一个子图,这个子图包含输入图中包含的顶点和边。它的实现很简单,顶点和边均做inner join操作即可。这个操作可以和subgraph操作相结合,基于另外一个相关图的特征去约束一个图。

groupEdges操作合并多重图中的并行边(如顶点对之间重复的边)。在大量的应用程序中,并行的边可以合并(它们的权重合并)为一条边从而降低图的大小。

graph.display() 可视化

https://www.cnblogs.com/tonglin0325/p/8338312.html

图计算框架乱斗

Flink: https://ci.apache.org/projects/flink/flink-docs-master/apis/batch/libs/gelly.html
GraphX: http://spark.apache.org/docs/latest/graphx-programming-guide.html
GraphLab: https://dato.com/learn/userguide/

前面的都是废话,直接看写代码。。。

https://www.bilibili.com/video/BV1s4411e7Pz?p=20

 

加到100 也不行

用静态的方法很难得到准确的值

原文地址:https://www.cnblogs.com/cx2016/p/12985927.html