Hadoop错误1(Text类型与String类型)

在此类的博客中,博主主要记录的是在Hadoop实践过程中遇到的一些错误,先上一个代码

 1 protected void map(Object key,Text value, Context context)
 2                 throws IOException, InterruptedException {
 3             fanData.getInstance(value.toString());
 4             String name=fanData.getFanNo();
 5             if(tm.get(name)==null){
 6                 tm.put(name,one);
 7             }
 8             else{
 9                 for (java.util.Map.Entry<String,Integer> entry : tm.entrySet()) {
10                     if(entry.getKey().toString().equals(name)){
11                         int a=entry.getValue();
12                         a++;
13                         System.out.println(a);
14                         tm.put(name,a);
15                     }
16                 }
17             }
18             
19         }

 

代码中展示的是一个map方法,代码是修改过后的正确的内容

【错误一】

运行下列一个语句时,如果map中的key(即name)相同的话,数据会自动覆盖的

tm.put(name,one);

【错误二】

entry.getKey()==name//false
entry.getKey().toString()==name//false

entry.getKey().toString().equals(name)//true

在上述代码中,

entry.getKey()

是一个Text类型,而

name

是一个String类型,需要将两者进行比较的话只有第三个语句才是正确的

 

posted @ 2017-10-21 16:40  yuanninesuns  阅读(670)  评论(0编辑  收藏  举报