2017-01-05 5 views
-1

私は、送信元と宛先ノードのタプルのRDDからグラフを構築していますが、このように:Sparkでグラフの最大接続コンポーネントのサイズを取得するにはどうすればよいですか?

Graph.fromEdgeTuples(rawEdges = edgeList, 1) 
  1. まず第一に、私は非常に2番目のパラメータが何であるかを理解していませんでした。ドキュメント、

    はdefaultValueから頂点が、私はまだそれを得ることはありませんエッジ

    によって参照頂点 を作成するためにどのと属性。

  2. 第二に、私は最大の構成要素の大きさを計算するために何かを見つけることができません。何も実装さforeach、またmapまたはreduceByKey、またはconnectedComponentsメソッドを呼び出した後に何か他のものはありません。

答えて

3
  1. defaultValueすべて作成したエッジに割り当てられた属性です:

    val graph = Graph.fromEdgeTuples(sc.parallelize(Seq(
        (1, 2), (2, 3), (4, 5))), 1) 
    
    graph.edges.map(_.attr).distinct.collect 
    // Array[Int] = Array(1) 
    
  2. 抽出成分IDとworcount行います

    val ids = graph.connectedComponents.vertices map((v: (Long, Long)) => v._2) 
    ids.map((_, 1L)).reduceByKey(_ + _) 
    
関連する問題