{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/10007","labels_url":"https://api.github.com/repos/apache/spark/issues/10007/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/10007/comments","events_url":"https://api.github.com/repos/apache/spark/issues/10007/events","html_url":"https://github.com/apache/spark/pull/10007","id":119070321,"number":10007,"title":"[SPARK-11987] Python API update for ChiSqSelector and QuantileDiscretizer","user":{"login":"yinxusen","id":2637239,"avatar_url":"https://avatars.githubusercontent.com/u/2637239?v=3","gravatar_id":"","url":"https://api.github.com/users/yinxusen","html_url":"https://github.com/yinxusen","followers_url":"https://api.github.com/users/yinxusen/followers","following_url":"https://api.github.com/users/yinxusen/following{/other_user}","gists_url":"https://api.github.com/users/yinxusen/gists{/gist_id}","starred_url":"https://api.github.com/users/yinxusen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yinxusen/subscriptions","organizations_url":"https://api.github.com/users/yinxusen/orgs","repos_url":"https://api.github.com/users/yinxusen/repos","events_url":"https://api.github.com/users/yinxusen/events{/privacy}","received_events_url":"https://api.github.com/users/yinxusen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-11-26T16:00:14Z","updated_at":"2015-11-27T04:22:44Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/10007","html_url":"https://github.com/apache/spark/pull/10007","diff_url":"https://github.com/apache/spark/pull/10007.diff","patch_url":"https://github.com/apache/spark/pull/10007.patch"},"body":"https://issues.apache.org/jira/browse/SPARK-11987\r\n\r\nFor `QuantileDiscretizer`, I add a `QuantileDiscretizerModel` in it as a nested class. The reason is a `QuantileDiscretizer` generates a `Bucketizer` mode, while the latter extends from a `JavaTransformer` in PySpark rather than a `JavaModel`, which prevents us transfering java model to python model easily. It also prevents us to call `_call_java(\"get_splits\")` from outside since it is a private method.\r\n\r\nI tried to rewrite the `Bucketizer` into a `JavaModel` in the first time, but it may hurt the current interfaces since `JavaModel` and `JavaTransformer` have different ways to set `uid` and different construction method args `__init__(...)`"},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/160040708","html_url":"https://github.com/apache/spark/pull/10007#issuecomment-160040708","issue_url":"https://api.github.com/repos/apache/spark/issues/10007","id":160040708,"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-11-27T04:22:43Z","updated_at":"2015-11-27T04:22:43Z","body":"Merged build finished. Test FAILed."}}