You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Sean Owen (JIRA)" <ji...@apache.org> on 2016/08/18 16:53:20 UTC
[jira] [Resolved] (SPARK-17130) SparseVectors.apply and
SparseVectors.toArray have different returns when creating with a illegal
indices
[ https://issues.apache.org/jira/browse/SPARK-17130?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sean Owen resolved SPARK-17130.
-------------------------------
Resolution: Duplicate
Oh yeah but along the way the validation is also all moved into the constructor. That was actually the last comment on the PR -- sorry thought that's what you saw and were even responding to. See https://github.com/apache/spark/pull/14555/files#diff-84f492e3a9c1febe833709960069b1b2R553 I think the issue was that Vectors.sparse does validate but new SparseVector() does not? well, both will be validated now. I'll say this is a duplicate because we should definitely resolve both at once.
> SparseVectors.apply and SparseVectors.toArray have different returns when creating with a illegal indices
> ---------------------------------------------------------------------------------------------------------
>
> Key: SPARK-17130
> URL: https://issues.apache.org/jira/browse/SPARK-17130
> Project: Spark
> Issue Type: Bug
> Components: ML, MLlib
> Affects Versions: 1.6.2, 2.0.0
> Environment: spark 1.6.1 + scala
> Reporter: Jon Zhong
> Priority: Minor
>
> One of my colleagues ran into a bug of SparseVectors. He called the Vectors.sparse(size: Int, indices: Array[Int], values: Array[Double]) without noticing that the indices are assumed to be ordered.
> The vector he created has all value of 0.0 (without any warning), if we try to get value via apply method. However, SparseVector.toArray will generates a array using a method that is order insensitive. Hence, you will get a 0.0 when you call apply method, while you can get correct result using toArray or toDense method. The result of SparseVector.toArray is actually misleading.
> It could be safer if there is a validation of indices in the constructor or at least make the returns of apply method and toArray method the same.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org