一.簡介
Spark GraphX是一個並行圖計算框架,它是基於Spark平臺提供對圖計算和挖掘簡潔易用的而豐富的接口,極大的方便了對餅形圖處理的需求。在GraphX中,圖的基礎類爲Graph,它包含兩個RDD:一個爲邊RDD,另一個爲頂點RDD。
與其他圖處理系統和圖數據庫相比,基於圖概念和圖處理原語的GraphX,它的一大優勢在於,既可以將底層數據看作一個完整地圖,使用圖的概念和圖處理原語:也可以將它們看作獨立的邊RDD和頂點RDD,使用數據並行處理原語,進行mapped、joined、transformed等操作。
二.特點
靈活性高
圖可以和集合進行無縫對接,GraphX統一了單個系統中的ETL、探索性分析和迭代圖計算。您可以查看與圖形和集合相同的數據,有效地使用RDD 轉換和圖的連接操作,以及使用 Pregel API 編寫自定義迭代圖算法。
速度快
可以與最快的專業圖形處理系統相媲美。
GraphX與最快的圖形系統競爭性能,同時保留Spark的靈活性,容錯性和易用性。
算法多
從不斷增加的圖算法庫中進行選擇。
除了高度靈活的API之外,GraphX還提供了各種圖形算法,其中許多都是由我們的用戶提供的。網頁排名,連接組件,標籤傳播,SVD ++,強大的連接組件以及三角計數等。
三.案例
def main(args: Array[String]): Unit = {
val session = SparkSession.builder().appName("GraphxDemo10").master("local[*]").getOrCreate()
val sc = session.sparkContext
//