Я относительный новичок в Hadoop MapReduce.Я пробовал вариант образца WordCount в http://archive.cloudera.com/cdh/3/hadoop/mapred_tutorial.html.В моем исходном файле есть дополнительные столбцы, и я хочу иметь возможность указать, по какому столбцу должно происходить суммирование.
В методе run (...) (строки с 87 по 116) аргументы передаются изкомандная строка.У меня есть два дополнительных аргумента, один из которых имеет разделитель, а второй - позицию столбца, для которого я хочу выполнить фильтрацию).
Я устанавливаю эти значения как
if (args.length == 5) {
conf.set("ipPosition", args[4]);
}
if (args.length == 6) {
conf.set("delimiter", args[5]);
}
Однако, когда я пытаюсь получить эти значения в методе configure (строка 28 примера), они возвращают ноль.
public void configure(JobConf job) {
try {
String varIpPosition = job.get("ipPosition");
if (varIpPosition != null) {
ipPosition = Integer.parseInt(varIpPosition);
}
String varDelimiter = job.get("delimiter");
if (varDelimiter != null) {
if (varDelimiter == "comma") {
lineDelimiter = ",";
} else {
lineDelimiter = " ";
}
}
System.err.println("IP Position" + ipPosition);
} catch (Exception ex) {
System.err.println("Error Configuring Job :"
+ job.get("ipPosition") + " - "
+ StringUtils.stringifyException(ex));
}
}
Я неправильно устанавливаю параметры конфигурации или неправильно получаю их?Любая помощь приветствуется.