gpt4 book ai didi

java - 通过使用 map 中的键来获取值(value)

转载 作者:行者123 更新时间:2023-12-02 22:04:44 26 4
gpt4 key购买 nike

映射器输入:

hi how are you 
how is your job
how is your family
what is hadoop hi

reducer 输入:
hadoop[1]
hi[1,1]
how[1,1,1]
is[1,1,1]
your[1,1]

映射器逻辑来存储和检索数据:
HashMap<String,Integer> hm=new HashMap<String,Integer>();  
hm.put("hadoop",[1]);
hm.put("hi",[2]);
hm.put("is",[3]);

String val=(String)newmap.get("is");//
output.collect(new Text(text),new Text(n))

}

我的问题是,我想打印 “is” 值(即3),但是我不希望我的代码对每个输入字符串执行比较。我的代码最后(在插入所有键值对之后)应该只搜索一次。

示例:

如果我有1000个键值对,则应首先插入所有键值对,然后开始搜索(( String val=(String)newmap.get("is"))。

最佳答案

我们可以为化简器输入中的所有值传递相同的键。例如

(1,hadoop)
(1,hi1)
(1,hadoop)....

然后,在可迭代本身内部的reducer方法中添加不同字符串标记的计数:
HashMap<String,Integer> hm=new HashMap<String,Integer>();  

Public void reduce(Intwritable key, Iterable(Text) values, Context context){
int i=1
String token= values.toString();
if(hm.get(token)== null){
hm.put(token,i);
}else{
i=hm.get(token)+1;
hm.put(token,i);
}
}

在迭代循环之后,我们可以输出结果。
String val=(String)hm.get("is");//  
context.write(NUllwritable.get(),new Text(val);

关于java - 通过使用 map 中的键来获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com