From bf19aac2b79d43f90d99e6206ba754b1e6b0f58c Mon Sep 17 00:00:00 2001 From: Ankur Dave <ankurdave@gmail.com> Date: Thu, 17 Oct 2013 13:19:00 -0700 Subject: [PATCH] Use ArrayBuilder instead of ArrayBuffer ArrayBuilder is specialized for holding primitive VD types. --- .../main/scala/org/apache/spark/graph/impl/GraphImpl.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 a3cdb97cea..87fb9dcd2e 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) -- GitLab