{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/3997","labels_url":"https://api.github.com/repos/apache/spark/issues/3997/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/3997/comments","events_url":"https://api.github.com/repos/apache/spark/issues/3997/events","html_url":"https://github.com/apache/spark/pull/3997","id":54021606,"number":3997,"title":"[SPARK-5186] [MLLIB]  Vector.equals and Vector.hashCode are very inefficient","user":{"login":"hhbyyh","id":7981698,"avatar_url":"https://avatars.githubusercontent.com/u/7981698?v=3","gravatar_id":"","url":"https://api.github.com/users/hhbyyh","html_url":"https://github.com/hhbyyh","followers_url":"https://api.github.com/users/hhbyyh/followers","following_url":"https://api.github.com/users/hhbyyh/following{/other_user}","gists_url":"https://api.github.com/users/hhbyyh/gists{/gist_id}","starred_url":"https://api.github.com/users/hhbyyh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hhbyyh/subscriptions","organizations_url":"https://api.github.com/users/hhbyyh/orgs","repos_url":"https://api.github.com/users/hhbyyh/repos","events_url":"https://api.github.com/users/hhbyyh/events{/privacy}","received_events_url":"https://api.github.com/users/hhbyyh/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":28,"created_at":"2015-01-12T05:23:08Z","updated_at":"2015-01-16T16:36:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/3997","html_url":"https://github.com/apache/spark/pull/3997","diff_url":"https://github.com/apache/spark/pull/3997.diff","patch_url":"https://github.com/apache/spark/pull/3997.patch"},"body":"JIRA Issue: https://issues.apache.org/jira/browse/SPARK-5186\r\n\r\nCurrently SparseVector is using the inherited equals from Vector, which will create a full-size array for even the sparse vector. The pull request contains a specialized equals optimization that improves on both time and space. \r\n\r\n1. The implementation will be consistent with the original. Especially it will keep equality comparison between SparseVector and DenseVector.\r\n2. For the hash code, overriding it may generate some breaking change and we should do it in another PR.\r\n"},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/70280970","html_url":"https://github.com/apache/spark/pull/3997#issuecomment-70280970","issue_url":"https://api.github.com/repos/apache/spark/issues/3997","id":70280970,"user":{"login":"SparkQA","id":8108735,"avatar_url":"https://avatars.githubusercontent.com/u/8108735?v=3","gravatar_id":"","url":"https://api.github.com/users/SparkQA","html_url":"https://github.com/SparkQA","followers_url":"https://api.github.com/users/SparkQA/followers","following_url":"https://api.github.com/users/SparkQA/following{/other_user}","gists_url":"https://api.github.com/users/SparkQA/gists{/gist_id}","starred_url":"https://api.github.com/users/SparkQA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SparkQA/subscriptions","organizations_url":"https://api.github.com/users/SparkQA/orgs","repos_url":"https://api.github.com/users/SparkQA/repos","events_url":"https://api.github.com/users/SparkQA/events{/privacy}","received_events_url":"https://api.github.com/users/SparkQA/received_events","type":"User","site_admin":false},"created_at":"2015-01-16T16:36:59Z","updated_at":"2015-01-16T16:36:59Z","body":"  [Test build #25663 has finished](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/25663/consoleFull) for   PR 3997 at commit [`985e160`](https://github.com/apache/spark/commit/985e16088196c2fb808c63c67ac7ee420edb4efa).\n * This patch **passes all tests**.\n * This patch merges cleanly.\n * This patch adds no public classes."}}