{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/6019","labels_url":"https://api.github.com/repos/apache/spark/issues/6019/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/6019/comments","events_url":"https://api.github.com/repos/apache/spark/issues/6019/events","html_url":"https://github.com/apache/spark/pull/6019","id":74515162,"number":6019,"title":"[SPARK-7407][MLLIB] use uid + name to identify parameters","user":{"login":"mengxr","id":829644,"avatar_url":"https://avatars.githubusercontent.com/u/829644?v=3","gravatar_id":"","url":"https://api.github.com/users/mengxr","html_url":"https://github.com/mengxr","followers_url":"https://api.github.com/users/mengxr/followers","following_url":"https://api.github.com/users/mengxr/following{/other_user}","gists_url":"https://api.github.com/users/mengxr/gists{/gist_id}","starred_url":"https://api.github.com/users/mengxr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mengxr/subscriptions","organizations_url":"https://api.github.com/users/mengxr/orgs","repos_url":"https://api.github.com/users/mengxr/repos","events_url":"https://api.github.com/users/mengxr/events{/privacy}","received_events_url":"https://api.github.com/users/mengxr/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":28,"created_at":"2015-05-08T22:24:33Z","updated_at":"2015-05-12T09:46:07Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/6019","html_url":"https://github.com/apache/spark/pull/6019","diff_url":"https://github.com/apache/spark/pull/6019.diff","patch_url":"https://github.com/apache/spark/pull/6019.patch"},"body":"A param instance is strongly attached to an parent in the current implementation. So if we make a copy of an estimator or a transformer in pipelines and other meta-algorithms, it becomes error-prone to copy the params to the copied instances. In this PR, a param is identified by its parent's UID and the param name. So it becomes loosely attached to its parent and all its derivatives. The UID is preserved during copying or fitting. All components now have a default constructor and a constructor that takes a UID as input. I keep the constructors for Param in this PR to reduce the amount of diff and moved `parent` as a mutable field.\r\n\r\nThis PR still needs some clean-ups, and there are several spark.ml PRs pending. I'll try to get them merged first and then update this PR.\r\n\r\n@jkbradley"},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/101216393","html_url":"https://github.com/apache/spark/pull/6019#issuecomment-101216393","issue_url":"https://api.github.com/repos/apache/spark/issues/6019","id":101216393,"user":{"login":"AmplabJenkins","id":4031291,"avatar_url":"https://avatars.githubusercontent.com/u/4031291?v=3","gravatar_id":"","url":"https://api.github.com/users/AmplabJenkins","html_url":"https://github.com/AmplabJenkins","followers_url":"https://api.github.com/users/AmplabJenkins/followers","following_url":"https://api.github.com/users/AmplabJenkins/following{/other_user}","gists_url":"https://api.github.com/users/AmplabJenkins/gists{/gist_id}","starred_url":"https://api.github.com/users/AmplabJenkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AmplabJenkins/subscriptions","organizations_url":"https://api.github.com/users/AmplabJenkins/orgs","repos_url":"https://api.github.com/users/AmplabJenkins/repos","events_url":"https://api.github.com/users/AmplabJenkins/events{/privacy}","received_events_url":"https://api.github.com/users/AmplabJenkins/received_events","type":"User","site_admin":false},"created_at":"2015-05-12T09:46:07Z","updated_at":"2015-05-12T09:46:07Z","body":"Test PASSed.\nRefer to this link for build results (access rights to CI server needed): \nhttps://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/32478/\nTest PASSed."}}