学习GraphX
首先准备如下社交图形数据:
aaarticlea/png;base64,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" width="300" alt="" />
打开spark-shell;
导入相关包:
import org.apache.spark._
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD
创建如上graph对象:
// Create an RDD for the vertices
val users: RDD[(VertexId, (String, Boolean))] =
sc.parallelize(Array((1L, ("Li Yapeng", true)), (2L, ("Wang Fei", false)), (3L, ("Xie Tingfeng", true)), (4L, ("Zhang Bozhi", false)), (5L, ("Chen Guanxi", true))))
// Create an RDD for edges
val relationships: RDD[Edge[String]] =
sc.parallelize(Array(Edge(1L, 2L, "spouse"), Edge(2L, 3L, "spouse"),
Edge(3L, 4L, "spouse"), Edge(4L, 5L, "friend"), Edge(3L, 5L, "friend")))
// Define a default user in case there are relationship with missing user
val defaultUser = ("Who?", false)
// Build the initial Graph
val graph = Graph(users, relationships, defaultUser)
尝试打印出所有的男艺人:
graph.vertices.filter(_._2._2).collect res8: Array[(org.apache.spark.graphx.VertexId, (String, Boolean))] = Array((1,(Li Yapeng,true)), (3,(Xie Tingfeng,true)), (5,(Chen Guanxi,true)))
按焦点程度逆序打印出艺人的ID:
graph.degrees.sortBy(_._2,false).collect res12: Array[(org.apache.spark.graphx.VertexId, Int)] = Array((3,3), (2,2), (4,2), (5,2), (1,1))
但是没办法知道艺人的名字,join一下:
graph.degrees.leftJoin(graph.vertices)((vid, vd1, vd2)=>(vd2.get._1,vd1)).sortBy(_._2._2, false).collect res35: Array[(org.apache.spark.graphx.VertexId, (String, Int))] = Array((3,(Xie Tingfeng,3)), (2,(Wang Fei,2)), (4,(Zhang Bozhi,2)), (5,(Chen Guanxi,2)), (1,(Li Yapeng,1)))
将sortBy放在后面,是因为sortBy会返回MappedRDD,丢失了VertexRDD的一些方法
直接拿vd2.get有点冒险,下面改成安全版本:
graph.degrees.leftJoin(graph.vertices)((vid, vd1, vd2)=>(vd2 match {case Some(vvd2) => (vvd2._1, vd1); case None => ("", vd1)})).sortBy(_._2._2, false).collect
测试一下消息机制,发送配偶信息给每个人:
graph.aggregateMessages({
(ctx:EdgeContext[(String, Boolean),String,String])=>
if(ctx.attr=="spouse"){
ctx.sendToSrc(ctx.dstAttr._1);
ctx.sendToDst(ctx.srcAttr._1)
}
}, ((s1:String,s2:String)=>s1+"|"+s2)).collect res46: Array[(org.apache.spark.graphx.VertexId, String)] = Array((1,Wang Fei), (2,Li Yapeng|Xie Tingfeng), (3,Wang Fei|Zhang Bozhi), (4,Xie Tingfeng))
输出pagerank值:
import org.apache.spark.graphx.lib
graph.pageRank(0.01).vertices.collect.foreach(println) (1,0.15)
(2,0.27749999999999997)
(3,0.38587499999999997)
(4,0.313996875)
(5,0.58089421875)
数一数每个艺人所处的三角关系:
graph.triangleCount.vertices.collect res48: Array[(org.apache.spark.graphx.VertexId, Int)] = Array((1,0), (2,0), (3,1), (4,1), (5,1))
学习GraphX的更多相关文章
- GraphX学习笔记——Programming Guide
学习的资料是官网的Programming Guide https://spark.apache.org/docs/latest/graphx-programming-guide.html 首先是Gra ...
- Spark GraphX学习资料
<Spark GraphX 大规模图计算和图挖掘> http://book.51cto.com/art/201408/450049.htm http://www.csdn.net/arti ...
- Spark学习笔记--Graphx
浅谈Graphx: http://blog.csdn.net/shangwen_/article/details/38645601 Pregel: http://blog.csdn.net/shang ...
- GraphX学习笔记——可视化
首先自己造了一份简单的社交关系的图 第一份是人物数据,id和姓名,person.txt 1 孙俪 2 邓超 3 佟大为 4 冯绍峰 5 黄晓明 6 angelababy 7 李冰冰 8 范冰冰 第二份 ...
- GraphX之Pregel(BSP模型-消息传递机制)学习
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...
- Spark之GraphX的Graph_scala学习
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...
- 大数据技术之_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学习笔记总结-spark入门资料精化
Spark学习笔记 Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用. ...
- Apache Spark源码走读之14 -- Graphx实现剖析
欢迎转载,转载请注明出处,徽沪一郎. 概要 图的并行化处理一直是一个非常热门的话题,这里头的重点有两个,一是如何将图的算法并行化,二是找到一个合适的并行化处理框架.Spark作为一个非常优秀的并行处理 ...
随机推荐
- 题目1096:日期差值(a-b=(a-c)-(b-c))
http://ac.jobdu.com/problem.php?pid=1096 题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据,每 ...
- 让浏览器进行跨域访问, 开发阶段需要跨域访问的测试方案 chrome的快捷方式里面 加 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --args --disable-web-security
Chrome浏览器 的快捷方式里加一个 命令可以使浏览器进行跨域访问 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe ...
- CDH CM安装及简单群集部署测试
前吃人的故事开始了,金钱是如何吃人的呢?我在想ing,还没想通,一起吧,哈哈: 入题,别胡扯,误人子弟!!!! CM@@!!!!!!....................., 先来张monitor ...
- 解决eclipse 使用run运行,始终会跳到debug模式!
查看此选项是否选择中卫always,若是,更改为never或prompt,重启eclipse即可
- 求前几日的平均值用obj.reduce()方法
const average = data=>data.map((item, idx, origin)=>Math.round(origin.slice(0,idx+1).reduce((a ...
- ServletContextListener 启动SPRING加载数据到缓存的应用
java 代码 public class LoadTreeForXML implements ServletContextListener { public void contextInitia ...
- [React Native] Build a Separator UI component
In this lesson we'll create a reusable React Native separator component which manages it's own style ...
- C 二叉树 1
二叉链表: #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include & ...
- TIME-WAIT和CLOSE-WAIT
系统调优,你所不知道的TIME_WAIT和CLOSE_WAIT 2016-03-11 运维帮 来源微信订阅号:大房说 作者:大房 你遇到过TIME_WAIT的问题吗? 我相信很多都遇到过这个问题. ...
- log_slave_updates在线修改
http://planet.mysql.com/entry/?id=20450 mysql> show variables like 'log_slave_updates'; +-------- ...