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

时间:2022-01-11 21:13:56

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

 protected void map(Object key,Text value, Context context)
throws IOException, InterruptedException {
fanData.getInstance(value.toString());
String name=fanData.getFanNo();
if(tm.get(name)==null){
tm.put(name,one);
}
else{
for (java.util.Map.Entry<String,Integer> entry : tm.entrySet()) {
if(entry.getKey().toString().equals(name)){
int a=entry.getValue();
a++;
System.out.println(a);
tm.put(name,a);
}
}
} }

代码中展示的是一个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类型,需要将两者进行比较的话只有第三个语句才是正确的