MR一个简单的逻辑判断,困扰了好久,求大神解答,谢谢
任务描述:表a与表b的账号碰撞,表a全是账号,表b是信息map:不重要,用伪代码filename=context获取的表名
if(filename==表a){
context.write(账号,“success”);
}else{
context.write(账号,value);
}
educe:输出很奇怪,一直有success输出,代码是这样:
boolean flag1=false;
boolean flag2=false;
Text outval=null;
for(Text val:values){
String vall=val.toString();
if(vall.equals("success")){
flag1=true
}else{
flag2=tue;
outval=val;
}
}
if(flag1&&flaf2){
context.write(Nullwriteable.get(),outval);
}
输出是输出了,可是输出很多success,不知道为什么,求解答,不可能outval赋值为success的啊,而且用logger测试了当outval.equals("success")的时候输出,没有日志打印,就不知道这个输出里面的success是怎么来的,就解答,谢谢大神们。
这种贴一部分看不出来的。只知道你输出的是outval
像这种直接dubug下就可以找出问题来了。
上面代码零星,需要一步步核实。
debug推荐参考:
hadoop的调试指导http://www.aboutyun.com/forum.php?mod=viewthread&tid=7605
sstutu 发表于 2018-7-3 18:14
这种贴一部分看不出来的。只知道你输出的是outval
像这种直接dubug下就可以找出问题来了。
谢谢谢谢,
jixianqiuxue 发表于 2018-7-3 18:57
上面代码零星,需要一步步核实。
debug推荐参考:
hadoop的调试指导http://www.aboutyun.com/forum.php?m ...
谢谢谢谢
页:
[1]