diff --git a/graph/src/main/scala/org/apache/spark/graph/impl/GraphImpl.scala b/graph/src/main/scala/org/apache/spark/graph/impl/GraphImpl.scala index a3cdb97ceade4a55a0afa57c0e64c05bd8a5d795..87fb9dcd2e05f0f6410baa459c9723da98443a7b 100644 --- a/graph/src/main/scala/org/apache/spark/graph/impl/GraphImpl.scala +++ b/graph/src/main/scala/org/apache/spark/graph/impl/GraphImpl.scala @@ -4,6 +4,7 @@ import scala.collection.JavaConversions._ import scala.collection.mutable import scala.collection.mutable.ArrayBuffer +import scala.collection.mutable.ArrayBuilder import org.apache.spark.SparkContext._ import org.apache.spark.Partitioner @@ -501,11 +502,11 @@ object GraphImpl { val vTableReplicatedValues: IndexedRDD[Pid, Array[VD]] = msgsByPartition.mapPartitionsWithIndex( (pid, iter) => { - val vertexArray = new ArrayBuffer[VD] + val vertexArray = ArrayBuilder.make[VD] for (msg <- iter) { vertexArray += msg.data._2 } - Array((pid, vertexArray.toArray)).iterator + Array((pid, vertexArray.result)).iterator }, preservesPartitioning = true).indexed(eTable.index) (vTableReplicationMap, vTableReplicatedValues)