GraphX の実行に問題があります
val adjGraph= adjGraph_CC.vertices
.flatMap { case (id, (compID, adjSet)) => (mapMsgGen(id, compID, adjSet)) }
// mapMsgGen will generate a list of msgs each msg has the form K->V
.reduceByKey((fst, snd) =>mapMsgMerg(fst, snd)).collect
// mapMsgMerg will merge each two msgs passed to it
reduceByKey が行うことを期待していたのは、flatMap の出力全体をキー (K) でグループ化し、提供された関数を使用して各キー (K) の値のリスト (Vs) を処理することです。
何が起こっているかというと、flatMap (関数 mapMsgGen を使用) の各出力です。これは、K->V ペア (通常は同じ K ではありません) のリストであり、reduceByKey 関数 mapMsgMerg を使用して、flatMap 全体が終了する前にすぐに処理されます。
明確化が必要です。何が問題なのかわかりませんか、それともflatMapとreduceByKeyが間違っていることを理解していますか??
よろしく、
マヘル