2016-04-29 6 views
0

の配列にオブジェクトの配列を変換しますどのように私はこの私はエッジ

edges: Array[Array[(Long, Long, String)]] = Array(Array((-209215114,197853780,Investor), (-209215114,-322475625,Investor), ... 

のようにオブジェクトの配列を持っていると私はグラフビルダーに渡すエッジの配列に変換したいです。ここで私は使用していますものです:

val eRDD: RDD[Edge[(VertexId, VertexId, String)]] = edges.map(x => Edge(x(0), x(1), x(2))) 

私は、次のエラーを取得しています:

<console>:107: error: type mismatch; 
found : (Long, Long, String) 
required: org.apache.spark.graphx.VertexId 
(which expands to) Long 
    val eRDD: RDD[Edge[(VertexId, VertexId, String)]] = edges.map(x => Edge(x(0), x(1), x(2))) 

答えて

2

あなたのタイプの定義が間違っています。どちらかの操作を行います。

val eRDD: RDD[Edge[String]] = edges.map(x => Edge(x(0), x(1), x(2))) 

またはちょうど行うに:

val eRDD = edges.map(x => Edge(x(0), x(1), x(2))) 

そしてScalaはあなたのための型を推論しましょう。

+0

優れたDavid、ありがとう –