我正在尝试解决mapreduce问题。目前,我有一个方法图以这种方式组织我的班级:
MapResult:
<key , "YES">
<key , "NO">
<key , "NO">
<key , "YES">
我要做的是验证在该组的偶数条目中是否至少有一个“是”值,在该组的奇数条目中是否至少有一个“是”值。简而言之,如果MapResult [0] ==“ YES” && MapResult [3] == YES,我的条件就成立。
这是我为reduce任务需要完成的代码:
public static class IntSumReducer
extends Reducer<Text,Text,Text,Text> {
private IntWritable result = new IntWritable();
public void reduce(Text key, Iterable<Text> values,
Context context
) throws IOException, InterruptedException {
for (Text value : values) {
// Iteration on this values
}
//context.write();
}
}
答案 0 :(得分:0)
您可以遍历可迭代对象并“翻转”偶数和奇数元素的检查:
布尔结果=假; boolean evenFound = false; 布尔奇数发现=假; boolean checkEven = true;
for (Text value : values) {
if (checkEven) {
evenFound |= "YES".equals(value);
} else {
oddFound |= "YES".equals(value);
}
if (evenFound && oddFound) {
result = true;
break;
}
checkEven = !checkEven;
}