diff options
author | Xiangrui Meng <meng@databricks.com> | 2016-03-16 14:19:54 -0700 |
---|---|---|
committer | DB Tsai <dbt@netflix.com> | 2016-03-16 14:19:54 -0700 |
commit | 85c42fda99973a0c35c743816a06ce9117bb1aad (patch) | |
tree | ded163492ceb349b435d611135ada7d7aba7f43e /mllib/src/test/scala/org | |
parent | 6fc2b6541fd5ab73b289af5f7296fc602b5b4dce (diff) | |
download | spark-85c42fda99973a0c35c743816a06ce9117bb1aad.tar.gz spark-85c42fda99973a0c35c743816a06ce9117bb1aad.tar.bz2 spark-85c42fda99973a0c35c743816a06ce9117bb1aad.zip |
[SPARK-13927][MLLIB] add row/column iterator to local matrices
## What changes were proposed in this pull request?
Add row/column iterator to local matrices to simplify tasks like BlockMatrix => RowMatrix conversion. It handles dense and sparse matrices properly.
## How was this patch tested?
Unit tests on sparse and dense matrix.
cc: dbtsai
Author: Xiangrui Meng <meng@databricks.com>
Closes #11757 from mengxr/SPARK-13927.
Diffstat (limited to 'mllib/src/test/scala/org')
-rw-r--r-- | mllib/src/test/scala/org/apache/spark/mllib/linalg/MatricesSuite.scala | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/mllib/src/test/scala/org/apache/spark/mllib/linalg/MatricesSuite.scala b/mllib/src/test/scala/org/apache/spark/mllib/linalg/MatricesSuite.scala index 1833cf3833..a02b8c9635 100644 --- a/mllib/src/test/scala/org/apache/spark/mllib/linalg/MatricesSuite.scala +++ b/mllib/src/test/scala/org/apache/spark/mllib/linalg/MatricesSuite.scala @@ -494,4 +494,17 @@ class MatricesSuite extends SparkFunSuite { assert(sm1.numNonzeros === 1) assert(sm1.numActives === 3) } + + test("row/col iterator") { + val dm = new DenseMatrix(3, 2, Array(0, 1, 2, 3, 4, 0)) + val sm = dm.toSparse + val rows = Seq(Vectors.dense(0, 3), Vectors.dense(1, 4), Vectors.dense(2, 0)) + val cols = Seq(Vectors.dense(0, 1, 2), Vectors.dense(3, 4, 0)) + for (m <- Seq(dm, sm)) { + assert(m.rowIter.toSeq === rows) + assert(m.colIter.toSeq === cols) + assert(m.transpose.rowIter.toSeq === cols) + assert(m.transpose.colIter.toSeq === rows) + } + } } |