1.1 图的基本概念:
定义:图是由顶点集合(vertex)及顶点间的关系集合(边edge)组成的一种数据结构。
作用:图可以对事物以及事物之间的关系建模,图可以用来表示自然发生的连接数据,如:社交网络、互联网web页面
常用应用:在地图应用中找到最短路径,基于与他人的相似度图,推荐产品。
1.2 Spark GraphX :
GraphX是Spark中用于图形和图形并行计算的新组件。
GraphX通过引入属性图:顶点和边均有属性的有向多重图,来扩充Spark的RDD
1.3 属性图:
属性图是GraphX的核心抽象模型,是一个有向多重图,带有每一个顶点(vertex)和边(edge)的用户自定义对象。由于相同顶点之间存在多种关系,属性图支持平行边,这简化了属性图的建模场景。
1.4属性图实例:
1.5Spark GraphX执行过程:
1.6第一个SparkGraphX案例:
(1)通过上面的项点数据和边数据创建图对象
(2)找出图中年龄大于 30 的顶点
(3)找出图中属性大于 5 的边
(4)找出图中最大的出度、入度、度数
package sparkGraphX
import org.apache.spark.graphx.{Edge, Graph, VertexId}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object sparkGrapaX {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("SimpleGraphX").setMaster("local")
val sc = new SparkContext(conf)
sc.setLogLevel("WARN")
//设置users顶点
val vertexArray : RDD[(VertexId, (String, Int))] =