{"action":"created","issue":{"url":"https://api.github.com/repos/h2oai/h2o-3/issues/313","repository_url":"https://api.github.com/repos/h2oai/h2o-3","labels_url":"https://api.github.com/repos/h2oai/h2o-3/issues/313/labels{/name}","comments_url":"https://api.github.com/repos/h2oai/h2o-3/issues/313/comments","events_url":"https://api.github.com/repos/h2oai/h2o-3/issues/313/events","html_url":"https://github.com/h2oai/h2o-3/pull/313","id":181747278,"number":313,"title":"throw a more informative exception for the user when wrapper gets a s…","user":{"login":"nkarpov","id":1390267,"avatar_url":"https://avatars.githubusercontent.com/u/1390267?v=3","gravatar_id":"","url":"https://api.github.com/users/nkarpov","html_url":"https://github.com/nkarpov","followers_url":"https://api.github.com/users/nkarpov/followers","following_url":"https://api.github.com/users/nkarpov/following{/other_user}","gists_url":"https://api.github.com/users/nkarpov/gists{/gist_id}","starred_url":"https://api.github.com/users/nkarpov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nkarpov/subscriptions","organizations_url":"https://api.github.com/users/nkarpov/orgs","repos_url":"https://api.github.com/users/nkarpov/repos","events_url":"https://api.github.com/users/nkarpov/events{/privacy}","received_events_url":"https://api.github.com/users/nkarpov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"mmalohlava","id":597582,"avatar_url":"https://avatars.githubusercontent.com/u/597582?v=3","gravatar_id":"","url":"https://api.github.com/users/mmalohlava","html_url":"https://github.com/mmalohlava","followers_url":"https://api.github.com/users/mmalohlava/followers","following_url":"https://api.github.com/users/mmalohlava/following{/other_user}","gists_url":"https://api.github.com/users/mmalohlava/gists{/gist_id}","starred_url":"https://api.github.com/users/mmalohlava/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmalohlava/subscriptions","organizations_url":"https://api.github.com/users/mmalohlava/orgs","repos_url":"https://api.github.com/users/mmalohlava/repos","events_url":"https://api.github.com/users/mmalohlava/events{/privacy}","received_events_url":"https://api.github.com/users/mmalohlava/received_events","type":"User","site_admin":false},"assignees":[{"login":"mmalohlava","id":597582,"avatar_url":"https://avatars.githubusercontent.com/u/597582?v=3","gravatar_id":"","url":"https://api.github.com/users/mmalohlava","html_url":"https://github.com/mmalohlava","followers_url":"https://api.github.com/users/mmalohlava/followers","following_url":"https://api.github.com/users/mmalohlava/following{/other_user}","gists_url":"https://api.github.com/users/mmalohlava/gists{/gist_id}","starred_url":"https://api.github.com/users/mmalohlava/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmalohlava/subscriptions","organizations_url":"https://api.github.com/users/mmalohlava/orgs","repos_url":"https://api.github.com/users/mmalohlava/repos","events_url":"https://api.github.com/users/mmalohlava/events{/privacy}","received_events_url":"https://api.github.com/users/mmalohlava/received_events","type":"User","site_admin":false},{"login":"tomasnykodym","id":1709201,"avatar_url":"https://avatars.githubusercontent.com/u/1709201?v=3","gravatar_id":"","url":"https://api.github.com/users/tomasnykodym","html_url":"https://github.com/tomasnykodym","followers_url":"https://api.github.com/users/tomasnykodym/followers","following_url":"https://api.github.com/users/tomasnykodym/following{/other_user}","gists_url":"https://api.github.com/users/tomasnykodym/gists{/gist_id}","starred_url":"https://api.github.com/users/tomasnykodym/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomasnykodym/subscriptions","organizations_url":"https://api.github.com/users/tomasnykodym/orgs","repos_url":"https://api.github.com/users/tomasnykodym/repos","events_url":"https://api.github.com/users/tomasnykodym/events{/privacy}","received_events_url":"https://api.github.com/users/tomasnykodym/received_events","type":"User","site_admin":false},{"login":"st-pasha","id":4231472,"avatar_url":"https://avatars.githubusercontent.com/u/4231472?v=3","gravatar_id":"","url":"https://api.github.com/users/st-pasha","html_url":"https://github.com/st-pasha","followers_url":"https://api.github.com/users/st-pasha/followers","following_url":"https://api.github.com/users/st-pasha/following{/other_user}","gists_url":"https://api.github.com/users/st-pasha/gists{/gist_id}","starred_url":"https://api.github.com/users/st-pasha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/st-pasha/subscriptions","organizations_url":"https://api.github.com/users/st-pasha/orgs","repos_url":"https://api.github.com/users/st-pasha/repos","events_url":"https://api.github.com/users/st-pasha/events{/privacy}","received_events_url":"https://api.github.com/users/st-pasha/received_events","type":"User","site_admin":false},{"login":"tomkraljevic","id":4442567,"avatar_url":"https://avatars.githubusercontent.com/u/4442567?v=3","gravatar_id":"","url":"https://api.github.com/users/tomkraljevic","html_url":"https://github.com/tomkraljevic","followers_url":"https://api.github.com/users/tomkraljevic/followers","following_url":"https://api.github.com/users/tomkraljevic/following{/other_user}","gists_url":"https://api.github.com/users/tomkraljevic/gists{/gist_id}","starred_url":"https://api.github.com/users/tomkraljevic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomkraljevic/subscriptions","organizations_url":"https://api.github.com/users/tomkraljevic/orgs","repos_url":"https://api.github.com/users/tomkraljevic/repos","events_url":"https://api.github.com/users/tomkraljevic/events{/privacy}","received_events_url":"https://api.github.com/users/tomkraljevic/received_events","type":"User","site_admin":false},{"login":"arnocandel","id":6147661,"avatar_url":"https://avatars.githubusercontent.com/u/6147661?v=3","gravatar_id":"","url":"https://api.github.com/users/arnocandel","html_url":"https://github.com/arnocandel","followers_url":"https://api.github.com/users/arnocandel/followers","following_url":"https://api.github.com/users/arnocandel/following{/other_user}","gists_url":"https://api.github.com/users/arnocandel/gists{/gist_id}","starred_url":"https://api.github.com/users/arnocandel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arnocandel/subscriptions","organizations_url":"https://api.github.com/users/arnocandel/orgs","repos_url":"https://api.github.com/users/arnocandel/repos","events_url":"https://api.github.com/users/arnocandel/events{/privacy}","received_events_url":"https://api.github.com/users/arnocandel/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2016-10-07T19:16:59Z","updated_at":"2016-10-08T04:40:18Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/h2oai/h2o-3/pulls/313","html_url":"https://github.com/h2oai/h2o-3/pull/313","diff_url":"https://github.com/h2oai/h2o-3/pull/313.diff","patch_url":"https://github.com/h2oai/h2o-3/pull/313.patch"},"body":"…trange value.\r\n\r\n@tomkraljevic @tomasnykodym @arnocandel @mmalohlava @st-pasha \r\n\r\nTom cautioned changes to this API should \"go through the ringer\", so added you all...\r\n\r\nMotivation: when user passes in empty string for numerical feature parseDouble throws NumberFormatException. This can easily happen when filling RowData from some other store in a loop, where an empty string is a missing value (I think this makes sense). The NFE message sucks and it's not obvious what to do, so I think this at least is a little better. (customer ran into this)\r\n\r\nFurther question though: before parseDouble, the value is already NaN, so if you didn't add the feature to RowData, it will be interpreted as missing (correctly) anyways. With that behavior in place I believe it strange to throw an exception when feature value = \"\"... in my mind it's clearly missing... (Tom mentioned that sparse case is different somehow but that's beyond my knowledge...)\r\n\r\nPerhaps one of these approaches next?\r\n\r\n- either interpret value=\"\" as missing for numericals by default\r\n- add explicit flags like: setConvertEmptyStringToZero(true)), setConvertEmptyStringToNa(true))\r\n- to avoid potentially adding flags for cases X,Y,Z in the future (since we already have this essentially same flag for unseen categorical to be NAs) ... create a flexible approach to let the user decide like... interpretNumerical(from, to) \r\n\r\nthoughts?\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/h2oai/h2o-3/313)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/h2oai/h2o-3/issues/comments/252402491","html_url":"https://github.com/h2oai/h2o-3/pull/313#issuecomment-252402491","issue_url":"https://api.github.com/repos/h2oai/h2o-3/issues/313","id":252402491,"user":{"login":"arnocandel","id":6147661,"avatar_url":"https://avatars.githubusercontent.com/u/6147661?v=3","gravatar_id":"","url":"https://api.github.com/users/arnocandel","html_url":"https://github.com/arnocandel","followers_url":"https://api.github.com/users/arnocandel/followers","following_url":"https://api.github.com/users/arnocandel/following{/other_user}","gists_url":"https://api.github.com/users/arnocandel/gists{/gist_id}","starred_url":"https://api.github.com/users/arnocandel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arnocandel/subscriptions","organizations_url":"https://api.github.com/users/arnocandel/orgs","repos_url":"https://api.github.com/users/arnocandel/repos","events_url":"https://api.github.com/users/arnocandel/events{/privacy}","received_events_url":"https://api.github.com/users/arnocandel/received_events","type":"User","site_admin":false},"created_at":"2016-10-08T04:40:18Z","updated_at":"2016-10-08T04:40:18Z","body":"With Deep Water, we'll be sending over actual strings to score (URLs/URIs to images, text, etc.), so I wouldn't assume that every string must be a number."}}
{"actor":{"display_login":"arnocandel"}}