我已经写了下面的代码,这是不比较,如果块它继续进入else块。请检查一下,有没有不符之处。
请帮忙
public class ReduceIncurance extends Reducer<Text, Text, Text, IntWritable> {
public void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException
{
int sum = 0;
int count = 0;
String[] input = values.toString().split(",");
for (String val : input) {
System.out.println("first:" + val);
if (val.equalsIgnoreCase("Residential")) {
System.out.println(val);
count++;
sum += count;
} else {
System.out.println("into elsee part");
count++;
sum += count;
}
context.write(key, new IntWritable(sum));
}
}
}
2条答案
按热度按时间jdzmm42g1#
试试这个
这将为您提供每个键下的“住宅”值计数。
问题在此代码中
String[] input = values.toString().split(",");
.Iterable<Text>
无法转换为String[]
这样地。kupeojn62#
对于特定的键,您需要遍历这些值。您不需要将它们存储到字符串[]。
试试这个
我还是不明白你为什么在if和else块中增加sum和count。