Spark Graphx怎么求社交网络中的最大年纪追求者
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容介绍了"Spark Graphx怎么求社交网络中的最大年纪追求者"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2025年01月23日Spark Graphx怎么求社交网络中的最大年纪追求者
本篇内容介绍了"Spark Graphx怎么求社交网络中的最大年纪追求者"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Spark Graphx提供了mapReduceTriplets来对图进行聚合计算,但是1.2以后不再推荐使用,源代码如下:
@deprecated("use aggregateMessages", "1.2.0")def mapReduceTriplets[A: ClassTag]( mapFunc: EdgeTriplet[VD, ED] => Iterator[(VertexId, A)], reduceFunc: (A, A) => A, activeSetOpt: Option[(VertexRDD[_], EdgeDirection)] = None) : VertexRDD[A]
* Aggregates values from the neighboring edges and vertices of each vertex. The user supplied* `mapFunc` function is invoked on each edge of the graph, generating 0 or more "messages" to be* "sent" to either vertex in the edge. The `reduceFunc` is then used to combine the output of* the map phase destined to each vertex.** This function is deprecated in 1.2.0 because of SPARK-3936. *
推荐使用的是aggregateMessages:
def aggregateMessages[A: ClassTag]( sendMsg: EdgeContext[VD, ED, A] => Unit, mergeMsg: (A, A) => A, tripletFields: TripletFields = TripletFields.All) : VertexRDD[A] = { aggregateMessagesWithActiveSet(sendMsg, mergeMsg, tripletFields, None)}
并举了一个简单的例子:
* vertex* {{{* val rawGraph: Graph[_, _] = Graph.textFile("twittergraph")* val inDeg: RDD[(VertexId, Int)] =* rawGraph.aggregateMessages[Int](ctx => ctx.sendToDst(1), _ + _)* }}}
可以看见能够进行消息传递和聚合操作。
案例实战:求社交网络中的年纪最大的追求者和追求者的平均年龄:
val oldestFollower: VertexRDD[(String,Int)]=userGraph.aggregateMessages[(String, Int)]( triplet => { triplet.sendToDst(triplet.srcAttr.name, triplet.srcAttr.age) }, (a, b) => if (a._2 > b._2) a else b )oldestFollower.collect.foreach(println(_))
averageAge: VertexRDD[] = userGraph.aggregateMessages[()]( triplet => { triplet.sendToDst(triplet.srcAttr.age) }(ab) => ((a._1 + b._1)(a._2 + b._2))).mapValues((idp) => p._2 / p._1)averageAge.collect().foreach((_))
很好很强大啊!
结果如下:
聚合操作
**********************************************************
找出年纪最大的追求者:
(4,(Bob,27))
(1,(David,42))
(6,(Charlie,65))
(2,(Charlie,65))
(3,(Ed,55))
**********************************************************
找出追求者的平均年纪:
(4,27.0)
(1,34.5)
(6,60.0)
(2,60.0)
(3,55.0)
**********************************************************
"Spark Graphx怎么求社交网络中的最大年纪追求者"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
追求者
年纪
最大
社交
网络
内容
更多
案例
知识
推荐
实用
强大
学有所成
接下来
例子
困境
实战
实际
年龄
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全为人民知识内容
博雅数据库官网广医保研
广电宽带架设服务器
用代理服务器访问微信
服务器硬件运行方式
选择框 数据库结合
女人胡萝卜手心漂亮吗服务器吗
网络安全问题概述论文
今日头条 张斌 数据库
软件开发时需求分析的工具
桂林市软件开发公司
芯片行业的软件开发怎么样
广州掌俱网络技术有限公司
法制网络安全手抄报
杭州凡华互联网科技招聘
java如何导出数据库数据
闵行区智能化软件开发质量
网络安全法共7章
网络安全心得体会反思剖析
油品管理服务器fuel
内部培训软件开发怎么收费
彩虹图纸管理平台服务器软件下载
今日头条 张斌 数据库
web读取数据库图片
数据库 事物的特性
数据库外建命令
惠普打印机如何设置扫描到服务器
语义数据库名词解释
怎么理解数据库
虚拟服务器云存储