天天看點

大資料開發:Spark GraphX圖計算入門

Spark架構下,除了支援批處理和流處理,也提供圖計算功能,而圖計算功能主要由Spark GraphX來提供。而近些年來說,圖計算在大資料領域,也得到越來越多的應用。今天的大資料開發學習分享,我們就來講講Spark GraphX圖計算入門。

大資料開發:Spark GraphX圖計算入門

關于圖計算

關于圖計算,其實是不能單單從字面上去了解。所謂的圖計算的“圖(Graph)”,其實是指的一種網絡,是一種适合表現事物之間關聯關系的資料結構,而非大衆意義上的圖檔(Image)。

圖計算目前廣泛應用于公安系統和銀行金融領域。通過社交網絡分析,可以打擊幫派,金融欺詐、信用卡盜刷等。通過人與人之間的關聯關系推斷,還可以用于理财産品推薦等場景。

圖的基本概念

1、圖的組成

圖的基本組成是頂點(vertex)和邊(edge)。

2、圖的分類

有向圖和無向圖:根據邊是否有方向,圖可以分成為有向圖和無向圖。有向圖的邊從源頂點出發,指向目标頂點。在無向圖中,一個頂點上的邊的數量叫做這個頂點的度。在有向圖中,一個頂點上出發的邊的數量叫做這個頂點的出度,彙集到一個頂點上的邊的數量叫做這個頂點的入度。

有環圖和無環圖:如果有向圖中存在一些邊構成閉合的環,稱為有環圖,反之為無環圖。有環圖上設計算法需要考慮終止條件,否則算法可能會沿着環永遠循環下去。

多重圖和僞圖:如果兩個頂點之間可以有多條平行邊,稱為多重圖。如果存在自環,即由一個頂點指向自己的邊,則稱為僞圖。Graphx的圖都是僞圖。

屬性圖和非屬性圖:如果頂點和邊是包括屬性的,稱為屬性圖,否則是非屬性圖。非屬性圖作用不大。通常頂點和邊至少有一個是包括屬性的,Graphx的圖都是屬性圖。

二分圖:如果圖的頂點被分成兩個不同的子集,邊的源頂點始終來自其中一個子集,目标頂點始終來自另外一個子集。這種圖稱為二分圖。

3、圖的表示

如果圖的邊是沒有屬性的,可以用稀疏的鄰接矩陣進行表示。在Graphx中,用頂點屬性表VertexRDD和邊屬性表EdgeRDD聯合來表示圖。

圖的算法

常見的圖算法大緻可以分為:

路徑搜尋算法,例如DFS&BFS、最短路徑、最小生成樹、随機遊走等;

中心性算法,例如DegreeCentrality、ClosenessCentrality、BetweennessCentrality、PageRank等;

社群發現算法,例如MeasuringAlgorithm、ComponentsAlgorithm、LabelPropagation Algorithm、LouvainModularity Algorithm等。

關于大資料開發學習,Spark GraphX圖計算入門,以上就為大家做了簡單的介紹了。圖計算應用在大資料的實際場景當中,正在面臨着越來越多的應用,而Spark GraphX重要性值得關注。

繼續閱讀