Spark Graphx中的图形数组

时间:2018-05-05 09:53:44

标签: scala apache-spark spark-graphx

我有多个相同类型的图表。我想将它们存储在一个数组中。但是当我在数组中附加一个图形时,我得到的错误是' ++'图形中不支持操作。

当我使用这种方法时:

var graphsArray = Array.empty[Graph[Object,Object]]
graphsArray :+ Graph(myVertices, myEdges)

我得到空数组,没有添加任何值。

1 个答案:

答案 0 :(得分:0)

默认的scala Array不可变的。这意味着:+方法返回带有新值的新数组,而graphsArray保持与创建时相同(空)。由于您未将:+的结果分配给任何内容,因此您将失去结果。

如果要使用可变数组,可以使用ArrayBuffer。如果要保留默认的scala不可变行为,可以使用fold添加所有图形。

val emptyArray = Array.empty[Graph[Object, Object]]
val myGraphs = ...
val graphsArray = myGraphs.fold(emptyArray) { case (arr, elm) => arr :+ elm }