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):每个顶点都存储一次,但有的边会被打断分到两台机器上.这样做的好处是节省存储空间 ...
随机推荐
- 集训第六周 数学概念与方法 计数 排列 L题
Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样. 话 ...
- web前端开发——css
一.css介绍 1.css是什么? Cascading Style Sheets缩写,层叠样式表.样式定义如何显示HTML元素,样式通常又会存在于样式表中. 2.为什么需要css? 使HTML页面变得 ...
- 【04】< meta > 元素
< meta > 元素 概要 标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 we ...
- Spring框架中 配置c3p0连接池
开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...
- (dede)织梦系统二次开发笔记
(dede)织梦系统二次开发记录 --soulsjie 一.模板常用文件说明 模板文件都在文件夹templets下,我们以默认模板(default)为例,对模板文件结构进行分析: 首页模板文件目录 \ ...
- 添物不花钱学javaEE--CSS
CSS是什么? CSS: Cascading Style Sheets CSS官方网址: https://www.w3.org/TR/2011/REC-CSS2-20110607/ 其实仔细研究这个就 ...
- Light oj-1100 - Again Array Queries,又是这个题,上次那个题用的线段树,这题差点就陷坑里了,简单的抽屉原理加暴力就可以了,真是坑~~
1100 - Again Array Queries ...
- 【IntelliJ】IntelliJ IDEA的安装破解及使用
结合两位大牛CV的,写的很全面,仅供自己使用 转载地:http://www.jianshu.com/p/ad3830095fb3 https://www.cnblogs.com/kangjianwei ...
- memcache适用和不适用场景[转载]
适用memcached的业务场景:1)如果网站包含了访问量很大的动态网页,因而数据库的负载将会很高.由于大部分数据库请求都是读操作,那么memcached可以显著地减小数据库负载.2)如果数据库服务器 ...
- Search Insert Position(二分查找)
Given a sorted array and a target value, return the index if the target is found. If not, return the ...