0
如何在同一個graphX圖形中添加不同類型的邊線。例如,節點A和節點B之間的邊可以具有字符串屬性,並且節點X和節點Y之間的邊可以具有(Int,Int)attr。graphx中不同類型的邊線
有沒有辦法在graphX中實現邊緣繼承? 任何人都可以提供一個例子嗎?
如何在同一個graphX圖形中添加不同類型的邊線。例如,節點A和節點B之間的邊可以具有字符串屬性,並且節點X和節點Y之間的邊可以具有(Int,Int)attr。graphx中不同類型的邊線
有沒有辦法在graphX中實現邊緣繼承? 任何人都可以提供一個例子嗎?
使用Graph
上的VD
and ED
類型參數指定圖的頂點和邊類型。只要它們共享一個共同的超類,就可以在不同的邊緣存儲不同類型的邊緣數據。爲此,在構建圖時,請將公共超類作爲ED
類型參數傳遞。
在您的示例中,String
和(Int, Int)
的常見超類型爲Any
。你可以用這樣的邊緣屬性來構造一個圖形:
val edges = List[Edge[Any]](
Edge(1, 2, "foo"),
Edge(3, 4, (123, 456)))
Graph.fromEdges(sc.parallelize(edges), 1)
更進一步說,如果我必須在同一個圖上使用groupEdges,那怎麼辦? –
如果我有一個用戶定義的邊界屬性(比如MySuperEdgeType),它可以被分類到diff edgeTypes中,那麼邊緣的分組將如何進行? 性狀MySuperEdge { DEF edgeType:字符串 } 情況下類SubEdge1(edType:字符串,totalCnt:智力)延伸MySuperEdge { DEF edgeType:字符串= {返回edType} DEF edgeAttrValue:INT = {返回totalCnt} } 情況下類SubEdge2(edType:字符串,銷售:中等,利潤:中等,)延伸MySuperEdge { DEF edgeType:字符串= {返回edType} DEF VAL1:INT = {返回銷售} DEF val2的:INT = {返回利潤} } –
val baseGraph =圖(節點,edgeRDD) 其中edgeRDD是RDD Edge [MySuperEdge] 在這種情況下,創建圖後,我將如何使用groupEdges? –