2016-08-26 33 views
0

私はコミュニティの検出のための非常に簡単なコードを実行しようとしていますが、それはエラーを返します:タイプ不一致FLINKグラフコミュニティ

import org.apache.flink.graph.library.CommunityDetection 
import org.apache.flink.graph._ 
import org.apache.flink.graph.scala.Graph 
import java.lang.Long 
import java.lang.Double 
import org.apache.flink.api.scala._ 

val env = ExecutionEnvironment.getExecutionEnvironment 
val vertices = Seq(new Vertex[Long, String](1L, "foo"), new Vertex[Long, String](2L, "bar")) 
val edges = Seq(new Edge[Long, String](1L, 2L, "foobar")) 

val graph = Graph.fromCollection(vertices, edges, env) 
val updatedGraph = graph.mapVertices(v => v.getValue + 1) 
val resultGraph = graph.run(new CommunityDetection[Long](30, 0.5)) 


          ^
+0

エラー:(30、33)のミスマッチを入力し、 が見つかりました:org.apache.flink.graph.library.CommunityDetection [Long] 必須:org.apache.flink.graph.GraphAlgorithm [Long、String、String ,?] val resultGraph = graph.run(新しいCommunityDetection [Long ](30、0.5)) –

答えて

0

CommunityDetectionアルゴリズムはLongのIdsと頂点値とDouble辺の重みを持つGraphを期待しています。コードでは、頂点とエッジの値をStringと定義します。 詳しい使用方法については、at the Gelly documentationをご覧ください。

+0

次のコードを使用していて、まだ例外が発生しています。作業コードの例を挙げてください。ありがとうございました。 val env = ExecutionEnvironment.getExecutionEnvironment val頂点= Seq(新しい頂点[Long、Double](1L、0.1)、新しい頂点[Long、Double](2L、0.4)) val edges = Seq(新しいEdge [Long、Double ](1L、2L、0.5)) ヴァルグラフ= Graph.fromCollection(頂点、エッジ、ENV) –

+0

問題は 'Double'頂点の値を使用していることです。頂点IDと値の両方が「Long」でなければならない。頂点の作成をたとえば 'ヴァル頂点= SEQ(新しい頂点[長い、長い(1L、1L)、新しい頂点[長い、長い(2L、4L))'。 – vasia