[
https://issues.apache.org/jira/browse/SPARK-17721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joseph K. Bradley resolved SPARK-17721.
---------------------------------------
Resolution: Fixed
Fix Version/s: (was: 2.0.2)
(was: 2.1.0)
1.5.3
1.6.3
Issue resolved by pull request 15311
[https://github.com/apache/spark/pull/15311]
> Erroneous computation in multiplication of transposed SparseMatrix with
> SparseVector
> ------------------------------------------------------------------------------------
>
> Key: SPARK-17721
> URL: https://issues.apache.org/jira/browse/SPARK-17721
> Project: Spark
> Issue Type: Bug
> Components: ML, MLlib
> Affects Versions: 1.4.1, 1.5.2, 1.6.2, 2.0.0
> Environment: Verified on OS X with Spark 1.6.1 and on Databricks
> running Spark 1.6.1
> Reporter: Bjarne Fruergaard
> Assignee: Bjarne Fruergaard
> Priority: Critical
> Labels: correctness
> Fix For: 1.6.3, 1.5.3
>
>
> There is a bug in how a transposed SparseMatrix (isTransposed=true) does
> multiplication with a SparseVector. The bug is present (for v. > 2.0.0) in
> both org.apache.spark.mllib.linalg.BLAS (mllib) and
> org.apache.spark.ml.linalg.BLAS (mllib-local) in the private gemv method with
> signature:
> bq. gemv(alpha: Double, A: SparseMatrix, x: SparseVector, beta: Double, y:
> DenseVector).
> This bug can be verified by running the following snippet in a Spark shell
> (here using v1.6.1):
> {code:java}
> import com.holdenkarau.spark.testing.SharedSparkContext
> import org.apache.spark.mllib.linalg._
> val A = Matrices.dense(3, 2, Array[Double](0, 2, 1, 1, 2,
> 0)).asInstanceOf[DenseMatrix].toSparse.transpose
> val b = Vectors.sparse(3, Seq[(Int, Double)]((1, 2), (2,
> 1))).asInstanceOf[SparseVector]
> A.multiply(b)
> A.multiply(b.toDense)
> {code}
> The first multiply with the SparseMatrix returns the incorrect result:
> {code:java}
> org.apache.spark.mllib.linalg.DenseVector = [5.0,0.0]
> {code}
> whereas the correct result is returned by the second multiply:
> {code:java}
> org.apache.spark.mllib.linalg.DenseVector = [5.0,4.0]
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]