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. LeetCode(56)Merge Intervals

    题目 Given a collection of intervals, merge all overlapping intervals. For example, Given [1,3],[2,6], ...

  2. mvc 下 使用kindeditor 配置信息

    先去下载: http://code.google.com/p/kindeditor/downloads/list引用: LitJSON.dll文件<script src="~/kind ...

  3. HDU 4745 最长回文子序列

    题目大意 两只青蛙朝不同方向条,每次都到达值相同的位置,不能重复到达自己到过的地方,且不能飞跃已到过的地方 我们可以理解为这两只青蛙分别把整个序列遍历了一遍,依次走过所有的点,找到最多相同的点的个数, ...

  4. hdu 4770 状压+枚举

    /* 长记性了,以后对大数组初始化要注意了!140ms 原来是对vis数组进行每次初始化,每次初始化要200*200的复杂度 一直超时,发现没必要这样,直接标记点就行了,只需要一个15的数组用来标记, ...

  5. BZOJ 1225: [HNOI2001] 求正整数 高精度+搜索+质数

    题意:给定n求,有n个因子的最小正整数. 题解:水题,zcr都会,我就不说什么了. 因数个数球求法应该知道,将m分解质因数,然后发现 a1^p1*a2^p2....an^pn这样一个式子, (1+p1 ...

  6. request详究

    本文主要是对在学习过程中遇到的request用法进行归纳总结,彻底的搞明白request在jsp中的作用. 百度百科的介绍如下: Request对象的作用是与客户端交互,收集客户端的Form.Cook ...

  7. [bzoj2561]最小生成树_网络流_最小割_最小生成树

    最小生成树 bzoj-2561 题目大意:题目链接. 注释:略. 想法: 我们发现: 如果一条权值为$L$的边想加入到最小生成树上的话,需要满足一下条件. 就是求出原图的最小生成树之后,这个边当做非树 ...

  8. SpringBoot常用注解总结

    在SpringBoot框架中,注解做为一种隐式配置,极大的简化了之前xml文件的配置方式.SpringBoot中包含许多种类的注解,这里对在SpingBoot项目中经常使用到的一些注解的进行大致的归纳 ...

  9. ArcEngine 打开AutoCAD文件的几种方法

    方法一. IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureLayer pFeatur ...

  10. WebLogic(12C)——简单公布和JDBC

    一,简单公布应用 1.点击"安装".開始部署应用: 2,找到要部署的项目路径: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFue ...