Spark GraphX 聚合操作
package Spark_GraphX import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.graphx._
import org.apache.spark.graphx.util.GraphGenerators /**
* 计算每一个用户的追随者数量和追随者的平均年龄
*/
object Graphx_聚合操作 {
def main(args: Array[String]): Unit = {
val conf=new SparkConf().setAppName("聚合操作").setMaster("local[2]")
val sc=new SparkContext(conf)
//随机生成具有100个顶点的图,图的结构也随机
val graph:Graph[Double,Int]=GraphGenerators.logNormalGraph(sc,numVertices =).mapVertices((id,_)=>id.toDouble)
graph.vertices.foreach(println)
graph.edges.foreach(println)
val olderFollowers:VertexRDD[(Int,Double)]=graph.aggregateMessages[(Int,Double)](
triplet=>{
if(triplet.srcAttr>triplet.dstAttr){ //如果源顶点的属性大于目的顶点的属性
triplet.sendToDst(,triplet.srcAttr) //源-->目的 发送个数1 和源顶点的属性
}
},
(a,b)=>(a._1+b._1,a._2+b._2) //累加统计结果
)
olderFollowers.values.foreach(println)
val avgAgeOfOlderFollowers:VertexRDD[Double]=olderFollowers.mapValues((id,value)=>value match {case (count,totalAge)=>totalAge/count})
println("*********************")
avgAgeOfOlderFollowers.foreach(println)
} }
(,34.0)
(,19.0)
(,52.0)
(,39.0)
(,96.0)
(,81.0)
(,4.0)
(,71.0)
(,16.0)
(,55.0)
(,82.0)
(,29.0)
(,66.0)
(,79.0)
(,28.0)
(,65.0)
(,54.0)
(,11.0)
(,40.0)
(,23.0)
(,6.0)
(,67.0)
(,8.0)
(,69.0)
(,86.0)
(,3.0)
(,58.0)
(,7.0)
(,44.0)
(,85.0)
(,88.0)
(,91.0)
(,60.0)
(,31.0)
(,26.0)
(,87.0)
(,68.0)
(,5.0)
(,2.0)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
Edge(,,)
........................... 省略
........................... 省略
(,2568.0)
(,2920.0)
(,2155.0)
(,3016.0)
(,196.0)
(,2010.0)
(,2820.0)
(,736.0)
(,2247.0)
(,1567.0)
(,675.0)
(,1329.0)
(,2422.0)
(,2713.0)
(,2699.0)
(,1415.0)
(,873.0)
(,1383.0)
(,1663.0)
(,2124.0)
(,99.0)
(,2440.0)
(,2487.0)
(,3089.0)
(,1080.0)
(,1172.0)
(,1615.0)
(,2079.0)
(,2555.0)
(,2832.0)
(,1036.0)
(,1118.0)
(,1899.0)
(,1067.0)
(,3382.0)
(,1675.0)
(,555.0)
(,667.0)
(,994.0)
(,1204.0)
(,1220.0)
(,1457.0)
(,2838.0)
(,2699.0)
(,2946.0)
(,3344.0)
(,1433.0)
(,2806.0)
(,1582.0)
(,3087.0)
(,1394.0)
(,926.0)
(,2411.0)
(,2185.0)
(,3093.0)
(,2355.0)
(,734.0)
(,930.0)
(,572.0)
(,1476.0)
(,1839.0)
(,2058.0)
(,573.0)
(,837.0)
(,2814.0)
(,3208.0)
*********************
(,57.254901960784316)
(,58.0)
(,69.3103448275862)
(,92.0)
(,84.375)
(,80.73333333333333)
(,62.76744186046512)
(,87.3)
(,83.15)
(,54.46153846153846)
(,67.21621621621621)
(,83.07692307692308)
(,67.57894736842105)
(,71.83333333333333)
(,98.0)
(,56.4)
(,56.175)
(,92.17647058823529)
(,83.0625)
(,67.825)
(,70.75)
(,92.2)
(,99.0)
(,62.56410256410256)
(,57.2037037037037)
(,83.71428571428571)
(,69.3)
(,67.42857142857143)
(,86.0)
(,97.0)
(,88.15789473684211)
(,95.28571428571429)
(,86.0)
(,85.70588235294117)
(,59.977777777777774)
(,53.07936507936508)
(,66.80952380952381)
(,60.529411764705884)
(,90.88888888888889)
(,54.36206896551724)
(,96.85714285714286)
(,94.85714285714286)
(,79.47826086956522)
(,88.25)
(,55.484848484848484)
(,75.97222222222223)
(,70.38095238095238)
(,63.86363636363637)
(,47.06349206349206)
(,88.75)
(,70.54166666666667)
(,71.09677419354838)
(,55.21875)
(,54.638297872340424)
(,92.6)
(,80.92592592592592)
(,71.36363636363636)
(,93.0)
(,77.6842105263158)
(,60.529411764705884)
(,83.7)
(,54.3728813559322)
(,76.9047619047619)
(,69.05405405405405)
(,86.33333333333333)
(,73.03846153846153)
(,55.442622950819676)
(,92.5)
(,82.83333333333333)
(,93.84615384615384)
(,61.69565217391305)
(,55.58490566037736)
(,75.42105263157895)
(,71.9090909090909)
(,74.18518518518519)
(,78.62962962962963)
(,52.0)
(,58.244897959183675)
(,71.15384615384616)
(,88.25)
(,71.9090909090909)
(,62.40384615384615)
(,97.7)
(,85.57142857142857)
(,91.58333333333333)
(,65.77142857142857)
(,96.14285714285714)
(,61.8)
(,58.84)
(,85.14285714285714)
(,87.125)
(,51.297872340425535)
(,58.35849056603774)
(,91.75)
(,95.33333333333333)
(,55.72727272727273)
(,95.5)
(,54.11538461538461)
Spark GraphX 聚合操作的更多相关文章
- Spark GraphX企业运用
========== Spark GraphX 概述 ==========1.Spark GraphX是什么? (1)Spark GraphX 是 Spark 的一个模块,主要用于进行以图为核心的计 ...
- Spark GraphX 属性图操作
package Spark_GraphX import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD import org.apa ...
- 明风:分布式图计算的平台Spark GraphX 在淘宝的实践
快刀初试:Spark GraphX在淘宝的实践 作者:明风 (本文由团队中梧苇和我一起撰写,并由团队中的林岳,岩岫,世仪等多人Review,发表于程序员的8月刊,由于篇幅原因,略作删减,本文为完整版) ...
- Spark Graphx编程指南
问题导读1.GraphX提供了几种方式从RDD或者磁盘上的顶点和边集合构造图?2.PageRank算法在图中发挥什么作用?3.三角形计数算法的作用是什么?Spark中文手册-编程指南Spark之一个快 ...
- Spark Graphx
Graphx 概述 Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求. ...
- 大数据技术之_19_Spark学习_05_Spark GraphX 应用解析 + Spark GraphX 概述、解析 + 计算模式 + Pregel API + 图算法参考代码 + PageRank 实例
第1章 Spark GraphX 概述1.1 什么是 Spark GraphX1.2 弹性分布式属性图1.3 运行图计算程序第2章 Spark GraphX 解析2.1 存储模式2.1.1 图存储模式 ...
- 基于Spark GraphX计算二度关系
关系计算问题描述 二度关系是指用户与用户通过关注者为桥梁发现到的关注者之间的关系.目前微博通过二度关系实现了潜在用户的推荐.用户的一度关系包含了关注.好友两种类型,二度关系则得到关注的关注.关注的好友 ...
- Spark GraphX图计算核心源码分析【图构建器、顶点、边】
一.图构建器 GraphX提供了几种从RDD或磁盘上的顶点和边的集合构建图形的方法.默认情况下,没有图构建器会重新划分图的边:相反,边保留在默认分区中.Graph.groupEdges要求对图进行重新 ...
- 2. Spark GraphX解析
2.1 存储模式 2.1.1 图存储模式 巨型图的存储总体上有边分割和点分割两种存储方式 1)边分割(Edge-Cut):每个顶点都存储一次,但有的边会被打断分到两台机器上.这样做的好处是节省存储空间 ...
随机推荐
- 13-看图理解数据结构与算法系列(Trie树)
Trie树 Trie树,是一种搜索树,也称字典树或单词查找树,此外也称前缀树,因为某节点的后代存在共同的前缀.它的key都为字符串,能做到高效查询和插入,时间复杂度为O(k),k为字符串长度,缺点是如 ...
- python模糊匹配之fuzzywuzzy
fuzzywyzzy 是python下一个模糊匹配的模块.首先要安装fuzzywuzzy 示例: from fuzzywuzzy import fuzz from fuzzywuzzy import ...
- [luoguP1981] 表达式求值(U•ェ•*U)
传送门 弄两个栈,一个存数,一个存运算符,然后乱搞. 代码 #include <cstdio> #include <cstring> #include <iostream ...
- MTK平台释疑android M 配置中断相关问题
1.使用老方法(android L)配置中断,调用request_irq函数时出错,错误代码 -22 Dear Customer: 您好! 如电话沟通,贵司可以在发过来的code基础上做下面的修改再 ...
- 选学霸(codevs 3372)
题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实力相当的人中,一部分被选上,另一部分没有,同学们就会抗议.所以老师想请你帮他求出他该选多少学霸,才能既不让同 ...
- Codeforces913F. Strongly Connected Tournament
n<=2000个人参加比赛,这样比:(这里的序号没按题目的)1.两两比一场,比完连个图,边i->j表示i赢了j.2.连完那个图强联通分量缩起来,强连通分量内继续比,即强连通分量递归进行1. ...
- [bzoj4994][Usaco2017 Feb]Why Did the Cow Cross the Road III_树状数组
Why Did the Cow Cross the Road III bzoj-4994 Usaco-2017 Feb 题目大意:给定一个长度为$2n$的序列,$1$~$n$个出现过两次,$i$第一次 ...
- 源码SDWebImage
源码来源:https://github.com/rs/SDWebImage 版本: 3.7 SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类,以支持从远程服务器下载并 ...
- react jsx 常见问题
问题一: Expected to return a value in arrow function 解决方案: 修改后: // 使用 store return ( <div> <h1 ...
- [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)
---------------------------------------------------------------------------------------------------- ...