W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
GraphX提供了幾種方式從RDD或者磁盤上的頂點和邊集合構造圖。默認情況下,沒有哪個圖構造者為圖的邊重新分區(qū),而是把邊保留在默認的分區(qū)中(例如HDFS中它們的原始塊)。Graph.groupEdges:Graph[VD,ED])需要重新分區(qū)圖,因為它假定相同的邊將會被分配到同一個分區(qū),所以你必須在調用groupEdges之前調用Graph.partitionBy
object GraphLoader {
def edgeListFile(
sc: SparkContext,
path: String,
canonicalOrientation: Boolean = false,
minEdgePartitions: Int = 1)
: Graph[Int, Int]
}
GraphLoader.edgeListFile提供了一個方式從磁盤上的邊列表中加載一個圖。它解析如下形式(源頂點ID,目標頂點ID)的連接表,跳過以#
開頭的注釋行。
# This is a comment
2 1
4 1
1 2
它從指定的邊創(chuàng)建一個圖,自動地創(chuàng)建邊提及的所有頂點。所有的頂點和邊的屬性默認都是1。canonicalOrientation
參數允許重定向正方向(srcId < dstId)的邊。這在connected components算法中需要用到。minEdgePartitions
參數指定生成的邊分區(qū)的最少數量。邊分區(qū)可能比指定的分區(qū)更多,例如,一個HDFS文件包含更多的塊。
object Graph {
def apply[VD, ED](
vertices: RDD[(VertexId, VD)],
edges: RDD[Edge[ED]],
defaultVertexAttr: VD = null)
: Graph[VD, ED]
def fromEdges[VD, ED](
edges: RDD[Edge[ED]],
defaultValue: VD): Graph[VD, ED]
def fromEdgeTuples[VD](
rawEdges: RDD[(VertexId, VertexId)],
defaultValue: VD,
uniqueEdges: Option[PartitionStrategy] = None): Graph[VD, Int]
}
Graph.apply(ClassTag[VD],ClassTag[ED]):Graph[VD,ED])允許從頂點和邊的RDD上創(chuàng)建一個圖。重復的頂點可以任意的選擇其中一個,在邊RDD中而不是在頂點RDD中發(fā)現的頂點分配默認的屬性。
Graph.fromEdges允許僅僅從一個邊RDD上創(chuàng)建一個圖,它自動地創(chuàng)建邊提及的頂點,并分配這些頂點默認的值。
Graph.fromEdgeTuples(ClassTag[VD]):Graph[VD,Int])允許僅僅從一個邊元組組成的RDD上創(chuàng)建一個圖。分配給邊的值為1。它自動地創(chuàng)建邊提及的頂點,并分配這些頂點默認的值。它還支持刪除邊。為了刪除邊,需要傳遞一個PartitionStrategy為值的Some
作為uniqueEdges
參數(如uniqueEdges = Some(PartitionStrategy.RandomVertexCut))。分配相同的邊到同一個分區(qū)從而使它們可以被刪除,一個分區(qū)策略是必須的。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: