spark组件之graphx函数方法(二)
来源:互联网 发布:淘宝分享有礼在哪找 编辑:程序博客网 时间:2024/06/07 06:48
在网络计算中,graphx提供了基本的函数和算法来计算社交网络关系中的三角关系数量,下面简单记录下一组常用的命令作为学习巩固:
1.启动spark-shell交互式环境:
import org.apache.spark.graphx._
import org.apache.spark.graphx.util._
2.利用graphx提供的类函数随机产生数据集
注:导入数据集方式(A:RDD方式,B:GraphLoader.edgeListFile(sc,hdfs-path),C:随机图生成器GraphGenerators)
val graph = GraphGenerators.logNormalGraph(sc, 100,2500)
其中,第二个参数代表顶点个数,第三个参数近似表示边个数。产生的随机图顶点及边属性均默认为整型1。
3.利用triangleCount计算社交网络三角关系数量。
注,由于triangleCount算法对图有前提要求,首先必须(srcId < dstId),其次存储方式 使用Graph.partitionBy。
val graph = GraphGenerators.logNormalGraph(sc, 100,2500).partitionBy(PartitionStrategy.RandomVertexCut)
过滤边产生子图:
val graphs = graph.subgraph(epred = e=>e.srcId < e.dstId)
然后使用算法:
val triCounts = graphs.triangleCount();
产生的triCounts类型为:org.apache.spark.graphx.Graph[Int,Int]
- 为了查看邻近点,这里不仅可以使用aggregateMessages函数,还可以使用collectNeighborIds和collectNeighbors更方便(某些情况效果不佳)
val neigh=graphs.collectNeighborIds(EdgeDirection.Either)
其中EdgeDirection提供三种邻近点方向,Either,In和Out,生产的为VertexRDD类型,然后采用filter查看某点的邻近点:
neigh.filter(e=>e._1==17).collect
- spark组件之graphx函数方法(二)
- spark组件之graphx函数方法(一)
- Spark组件之GraphX学习11--PageRank例子(PageRankAboutBerkeleyWiki)
- spark组件之graphx图并行计算
- Spark组件之GraphX学习9--使用pregel函数求单源最短路径
- Spark组件之GraphX学习9--使用pregel函数求单源最短路径
- Spark组件之GraphX学习10--PageRank学习和使用(From examples)
- Spark组件之GraphX学习1--入门实例Property Graph
- Spark组件之GraphX学习2--triplets实践
- Spark组件之GraphX学习3--Structural Operators:subgraph
- Spark组件之GraphX学习4--Structural Operators:mask
- Spark组件之GraphX学习8--邻居集合
- Spark组件之GraphX学习13--ConnectedComponents操作
- Spark组件之GraphX学习14--TriangleCount实例和分析
- Spark组件之GraphX学习20--待学习部分
- Spark组件之GraphX学习16--最短路径ShortestPaths
- spark-graphx之pagerank
- Spark组件之GraphX学习12--GraphX常见操作汇总SimpleGraphX
- 通过jsp和servlet实现后台界面完成对数据库的增删改查
- Python利用MonkeyRunner操作手机
- RSA公钥文件(PEM)解析
- 创建数据库
- Codeforces-Round-#357-(Div.-2)-Economy-Game
- spark组件之graphx函数方法(二)
- centos6.x中yum安装nginx
- 计算机病毒的基本知识
- eclipse 下调整jdk和tomcat的jvm参数
- 十三、linux curl详解
- STL源码剖析——priority_queue
- java 中类的加载顺序
- oracle10g升级补丁后无法启动实例
- 关于在eclipse中使用ctypes 如何处理编码的问题