[
https://issues.apache.org/jira/browse/MAHOUT-404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Drew Farris updated MAHOUT-404:
-------------------------------
Attachment: MAHOUT-404.patch
Here's a patch that modifies AbstractJob.parseDirectories to catch the case
where addInputOption() or addOutputOption() has been called but no input/output
option or property (mapred.input.dir/mapred.output.dir) is specified. In this
case help will be displayed and parseArguments will return null.
It also fixes an issue with the handling of 'flag' options where the option key
would appear in the map produced by parseArguments even though the flag wasn't
specified on the command-line. In such a case, the key should not appear in the
map.
Also includes AbstractJobTest - a unit test for the flag handling, general
option handling and input/output directoy option handling.
Take a look, let me know if this all makes sense.
> AbstractJob improvements.
> -------------------------
>
> Key: MAHOUT-404
> URL: https://issues.apache.org/jira/browse/MAHOUT-404
> Project: Mahout
> Issue Type: Improvement
> Components: Utils
> Affects Versions: 0.4
> Reporter: Drew Farris
> Attachments: MAHOUT-404.patch, MAHOUT-404.patch, MAHOUT-404.patch,
> MAHOUT-404.patch, MAHOUT-404.patch
>
>
> Per discussion :
> http://lucene.472066.n3.nabble.com/Re-input-now-Dmapred-input-dir-td852297.html#a852297
> With the advent of the parsedArgs map returned by AbstractJob.parseArguments
> is there
> a need to pass Option arguments around anymore? Could AbstractJob maintain
> Options state in a sense?
> For example, from RecommenderJob:
> {code}
> Option numReccomendationsOpt =
> AbstractJob.buildOption("numRecommendations", "n",
> "Number of recommendations per user", "10");
> Option usersFileOpt = AbstractJob.buildOption("usersFile", "u",
> "File of users to recommend for", null);
> Option booleanDataOpt = AbstractJob.buildOption("booleanData", "b",
> "Treat input as without pref values", Boolean.FALSE.toString());
> Map<String,String> parsedArgs = AbstractJob.parseArguments(
> args, numReccomendationsOpt, usersFileOpt, booleanDataOpt);
> if (parsedArgs == null) {
> return -1;
> }
> {code}
> Could be changed to something like:
> {code}
> buildOption("numRecommendations", "n", "Number of recommendations per user",
> "10");
> buildOption("usersFile", "u", "File of users to recommend for", null);
> buildOption("booleanData", "b", "Treat input as without pref values",
> Boolean.FALSE.toString());
> Map<String,String> parsedArgs = parseArguments();
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.