Skip to content

Commit 6d90d45

Browse files
committed
compress vectors in VectorAssembler
1 parent 1712a7c commit 6d90d45

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

mllib/src/main/scala/org/apache/spark/ml/feature/VectorAssembler.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,6 @@ object VectorAssembler {
102102
case o =>
103103
throw new SparkException(s"$o of type ${o.getClass.getName} is not supported.")
104104
}
105-
Vectors.sparse(cur, indices.result(), values.result())
105+
Vectors.sparse(cur, indices.result(), values.result()).compressed
106106
}
107107
}

mllib/src/test/scala/org/apache/spark/ml/feature/VectorAssemblerSuite.scala

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ package org.apache.spark.ml.feature
2020
import org.scalatest.FunSuite
2121

2222
import org.apache.spark.SparkException
23-
import org.apache.spark.mllib.linalg.{Vector, Vectors}
23+
import org.apache.spark.mllib.linalg.{DenseVector, SparseVector, Vector, Vectors}
2424
import org.apache.spark.mllib.util.MLlibTestSparkContext
2525
import org.apache.spark.sql.{Row, SQLContext}
2626

@@ -48,6 +48,14 @@ class VectorAssemblerSuite extends FunSuite with MLlibTestSparkContext {
4848
}
4949
}
5050

51+
test("assemble should compress vectors") {
52+
import org.apache.spark.ml.feature.VectorAssembler.assemble
53+
val v1 = assemble(0.0, 0.0, 0.0, Vectors.dense(4.0))
54+
assert(v1.isInstanceOf[SparseVector])
55+
val v2 = assemble(1.0, 2.0, 3.0, Vectors.sparse(1, Array(0), Array(4.0)))
56+
assert(v2.isInstanceOf[DenseVector])
57+
}
58+
5159
test("VectorAssembler") {
5260
val df = sqlContext.createDataFrame(Seq(
5361
(0, 0.0, Vectors.dense(1.0, 2.0), "a", Vectors.sparse(2, Array(1), Array(3.0)), 10L)

0 commit comments

Comments
 (0)