2016-04-29 8 views
0

Ich habe ein Array von Objekt wie diesesFür GraphX ​​Wie kann ich ein Array von Objekt zu einer Reihe von Kanten konvertieren

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

, und ich will es auf ein Array von Kante konvertieren zu einem Graph Builder übergeben . Hier ist, was ich verwende:

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

Ich erhalte die folgende Fehlermeldung:

<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))) 

Antwort

2

Ihre Typdefinition falsch ist. Entweder tun:

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

oder gerade tun:

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

Und lassen Scala den Typ für Sie schließen.

+0

Ausgezeichneter David, danke –

Verwandte Themen