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 聚合操作的更多相关文章

  1. Spark GraphX企业运用

    ========== Spark GraphX 概述 ==========1.Spark GraphX是什么?  (1)Spark GraphX 是 Spark 的一个模块,主要用于进行以图为核心的计 ...

  2. Spark GraphX 属性图操作

    package Spark_GraphX import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD import org.apa ...

  3. 明风:分布式图计算的平台Spark GraphX 在淘宝的实践

    快刀初试:Spark GraphX在淘宝的实践 作者:明风 (本文由团队中梧苇和我一起撰写,并由团队中的林岳,岩岫,世仪等多人Review,发表于程序员的8月刊,由于篇幅原因,略作删减,本文为完整版) ...

  4. Spark Graphx编程指南

    问题导读1.GraphX提供了几种方式从RDD或者磁盘上的顶点和边集合构造图?2.PageRank算法在图中发挥什么作用?3.三角形计数算法的作用是什么?Spark中文手册-编程指南Spark之一个快 ...

  5. Spark Graphx

    Graphx    概述        Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求.       ...

  6. 大数据技术之_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 图存储模式 ...

  7. 基于Spark GraphX计算二度关系

    关系计算问题描述 二度关系是指用户与用户通过关注者为桥梁发现到的关注者之间的关系.目前微博通过二度关系实现了潜在用户的推荐.用户的一度关系包含了关注.好友两种类型,二度关系则得到关注的关注.关注的好友 ...

  8. Spark GraphX图计算核心源码分析【图构建器、顶点、边】

    一.图构建器 GraphX提供了几种从RDD或磁盘上的顶点和边的集合构建图形的方法.默认情况下,没有图构建器会重新划分图的边:相反,边保留在默认分区中.Graph.groupEdges要求对图进行重新 ...

  9. 2. Spark GraphX解析

    2.1 存储模式 2.1.1 图存储模式 巨型图的存储总体上有边分割和点分割两种存储方式 1)边分割(Edge-Cut):每个顶点都存储一次,但有的边会被打断分到两台机器上.这样做的好处是节省存储空间 ...

随机推荐

  1. AutoEncoders变种

    目录 PCA V.S. Auto-Encoders Denoising AutoEncoders Dropout AutoEncoders PCA V.S. Auto-Encoders deep au ...

  2. 任务3.站会或DoD

    三选一 1.为开展敏捷团队:尝试一下引入站会 2.正在实践敏捷团队:定义DoD 3.从本次和上次学习中自己找出一个任务 <我们知道何时才算完成> <富有成效的每日站会> 目前所 ...

  3. Xcode8、 iOS10 适配问题

    调用相机.相册.麦克风.位置等隐私问题崩溃解决办法 你的项目中访问了隐私数据,比如:相机,相册,联系人等,在Xcode8中打开编译的话,统统会crash,控制台会输出下面这样的日志: 这是因为iOS对 ...

  4. HTML基础知识 table中 th,td,tr

    https://www.2cto.com/kf/201711/701872.html table是一个布局神器,之前看过很多代码,都是用table布局的.但是,我在学习的过程中,发现table有很迷的 ...

  5. jQuery_计算器实例

    知识点: fadeIn()---计算器界面载入淡入效果 hover()---鼠标移入移出某个元素时触发的事件 click()---鼠标单击事件 css()---对元素样式的操作 val()---获取表 ...

  6. UVALive 6507 Passwords

    Passwords Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. Original ...

  7. centOS 7 换ssh端口

    centos 最少安装时缺少semanage的,要这样装补上,因为默认是安装了SElinux的 [root@localhost ~]# sestatus SELinux status: enabled ...

  8. ehcache、memcache、redis三大缓存比较

    最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考!  Ehcache 在Java项目广泛的使用.它是一个开源的.设计于提高在数据从RDBMS ...

  9. SQL Server Management Studio自定义快捷键

    SQL Server Management Studio支持自定义快捷键:工具->选项->键盘: 其中,Alt+F1.Ctrl+1.Ctrl+2是系统预定义的快捷键. 双击表名(或按Ctr ...

  10. Network-POJ3694(最小公共祖先LCA+Tarjin)

    http://poj.org/problem?id=3694 这一题  为什么要找最小祖先呢 当两个节点连到一块的时候  找最小公共节点就相当于找强连通分支 再找最小公共节点的过程中直到找到  这个过 ...