对于 GraphX,我如何将对象数组转换为边数组

For GraphX how do i convert an array of object to an array of Edges

我有一个像这样的对象数组

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

我想将它转换为 Edge 数组以传递给图形生成器。这是我正在使用的:

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

你的类型定义是错误的。要么:

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 为您推断类型。