我在CSV文件中有一个矩阵,看起来像这样:
A B C D
A 0 3 2 5
B -1 0 2 9
C -1 -1 0 8
D -1 -1 -1 0
我想在Spark中使用GraphX创建图形。我有另一个文件中的顶点,现在我试图用矩阵中的值创建边。但我被卡住了。
val Vertices: RDD[(VertexId, String)] = data.map(_.split(",")).map { arr =>
val id = arr(0)
val place = arr(1)
(id.toLong, place)
}
val edges: RDD[Edge[Double]] = edgesData.map(_.split(",")).map { arr =>
val place1 = arr(0).toLong
val place2 =
}
如何从CSV文件中创建矩阵的边?
1条答案
按热度按时间nnvyjq4y1#
GraphX要求你提供一个
VertexId
,这是每个顶点的唯一Long
标识符。只使用RDD API,这需要一点技巧,但这里有一种方法可以做到这一点。我没有你的csv文件的确切结构,这是我使用的:
在下面的内容中,我强调了您应该调整的代码行,您的文件可能会略有不同。