{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/10205","labels_url":"https://api.github.com/repos/apache/spark/issues/10205/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/10205/comments","events_url":"https://api.github.com/repos/apache/spark/issues/10205/events","html_url":"https://github.com/apache/spark/pull/10205","id":121072753,"number":10205,"title":"[SPARK-529] [core] [yarn] Add type-safe config keys to SparkConf.","user":{"login":"vanzin","id":1694083,"avatar_url":"https://avatars.githubusercontent.com/u/1694083?v=3","gravatar_id":"","url":"https://api.github.com/users/vanzin","html_url":"https://github.com/vanzin","followers_url":"https://api.github.com/users/vanzin/followers","following_url":"https://api.github.com/users/vanzin/following{/other_user}","gists_url":"https://api.github.com/users/vanzin/gists{/gist_id}","starred_url":"https://api.github.com/users/vanzin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanzin/subscriptions","organizations_url":"https://api.github.com/users/vanzin/orgs","repos_url":"https://api.github.com/users/vanzin/repos","events_url":"https://api.github.com/users/vanzin/events{/privacy}","received_events_url":"https://api.github.com/users/vanzin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":28,"created_at":"2015-12-08T18:46:54Z","updated_at":"2016-01-26T20:18:44Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/10205","html_url":"https://github.com/apache/spark/pull/10205","diff_url":"https://github.com/apache/spark/pull/10205.diff","patch_url":"https://github.com/apache/spark/pull/10205.patch"},"body":"This is, in a way, the basics to enable SPARK-529 (which was closed as\r\nwon't fix but I think is still valuable). In fact, Spark SQL created\r\nsomething for that, and this change basically factors out that code\r\nand inserts it into SparkConf, with some extra bells and whistles.\r\n\r\nTo showcase the usage of this pattern, I modified the YARN backend\r\nto use the new config keys (defined in the new YarnConfigKeys object).\r\nMost of the changes are mechanic, although logic had to be slightly\r\nmodified in a handful of places.\r\n\r\nI did not port the conf entry registry that SQLConf keeps back to\r\ncore, although in the future that could be a useful addition (e.g.\r\nto programatically list all known config options). That required\r\nsome code duplication in SQLConf, although it shares the actual\r\nimplementation of the entries with SparkConf."},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/175207773","html_url":"https://github.com/apache/spark/pull/10205#issuecomment-175207773","issue_url":"https://api.github.com/repos/apache/spark/issues/10205","id":175207773,"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":"2016-01-26T20:18:44Z","updated_at":"2016-01-26T20:18:44Z","body":"**[Test build #50116 has finished](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/50116/consoleFull)** for PR 10205 at commit [`b3a3b18`](https://github.com/apache/spark/commit/b3a3b18e38160bafbee1751b76834b9ee0aa3095).\n * This patch passes all tests.\n * This patch merges cleanly.\n * This patch adds no public classes."}}