Github user sethah commented on a diff in the pull request:
https://github.com/apache/spark/pull/11119#discussion_r77758918
--- Diff: mllib/src/main/scala/org/apache/spark/ml/clustering/KMeans.scala
---
@@ -137,6 +138,17 @@ class KMeansModel private[ml] (
@Since("1.6.0")
override def write: MLWriter = new KMeansModel.KMeansModelWriter(this)
+ override def hashCode(): Int = {
+ (Array(this.getClass, uid) ++ clusterCenters)
--- End diff --
@yinxusen Correct me if I'm wrong, but I believe you override the equals
method is because the params are checked for equality in the read/write tests.
Just thinking ahead, we will have to do this for every model we use as an
initial model. We can avoid this by adding some handling inside the read/write
params test, and then checking the initial model equality for read/write inside
the `checkModelData` method. I guess I'd prefer not to randomly overwrite some
models equals methods, and not others, especially since the reasoning behind
won't be clear. What do you think?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]