我正在创建一个map reduce作业。
问题是比较不能正确工作。
如何比较这些字符串?
public void reduce(Text key, Iterable<Text> values,
Context context) throws IOException, InterruptedException {
int numItems1 = 0;
for (Text val1 : values) {
if(val1.toString() == "view") /// if not working
{
numItems1 = numItems1+1;
numItems2 = 0;
numItems3 = 0;
result1.set( numItems1 );
// val1.set( result1 + "," + numItems2 + "," + numItems3 );
}
}
val1.set(result1 + ",");
context.write(key,val1);
}
正如copeg所说,它不依赖于Hadoop,也不依赖于Reducer。问题来自于字符串比较。在Java中,应该使用
val1.toString () .equals("视图")