spark元件之graphx函式方法(二)

2021-07-13 12:59:41 字數 1262 閱讀 7116

1.啟動spark-shell互動式環境:

import org.apache.spark.graphx._

import org.apache.spark.graphx.util._

2.利用graphx提供的類函式隨機產生資料集

注:匯入資料集方式(a:rdd方式,b:graphloader.edgelistfile(sc,hdfs-path),c:隨機圖生成器graphgenerators)

val graph = graphgenerators.lognormalgraph(sc, 100,2500)

其中,第二個引數代表頂點個數,第三個引數近似表示邊個數。產生的隨機圖頂點及邊屬性均預設為整型1。

3.利用********count計算社交網路三角關係數量。

注,由於********count演算法對圖有前提要求,首先必須(srcid < dstid),其次儲存方式 使用graph.partitionby。

val graph = graphgenerators.lognormalgraph(sc, 100,2500).partitionby(partitionstrategy.randomvertexcut)

過濾邊產生子圖:

val graphs = graph.subgraph(epred = e=>e.srcid < e.dstid)

然後使用演算法:

val tricounts = graphs.********count();

產生的tricounts型別為:org.apache.spark.graphx.graph[int,int]

為了檢視鄰近點,這裡不僅可以使用aggregatemessages函式,還可以使用collectneighborids和collectneighbors更方便(某些情況效果不佳)

val neigh=graphs.collectneighborids(edgedirection.either)

其中edgedirection提供三種鄰近點方向,either,in和out,生產的為vertexrdd型別,然後採用filter檢視某點的鄰近點:

neigh.filter(e=>e._1==17).collect

Spark核心RDD foldByKey函式詳解

foldbykey操作作用於rdd k,v 根據k將v做摺疊 合併處理,其中的引數zerovalue表示先根據對映函式將zerovalue應用與v,進行初始化v,在將對映函式應用於初始化後的v。scala val rdd1 sc.makerdd array a 1 a 2 b 1 b 2 c 1 r...

Spark 核心元件解析

blockmanager 是整個 spark 底層負責資料儲存與管理的乙個元件,driver 和 executor 的所有資料都由對應的 blockmanager 進行管理。driver 上有 blockmanagermaster,負責對各個節點上的 blockmanager 內部管理 的資料的元資...

Spark學習(一)之Spark初識

1.spark歷史及簡介 spark是乙個實現快速通用的集群計算平台。它是由加州大學伯克利分校amp實驗室 開發的通用記憶體平行計算框架,用來構建大型的 低延遲的資料分析應用程式。它擴充套件了廣泛使用的mapreduce計算模型。12年正式開源,距今6年歷史。spark執行架構的設計 cluster...