当前位置: 首页 > 知识库问答 >
问题:

关于此地图减少字数示例的澄清?

董高逸
2023-03-14

我正在研究地图约简,我有一个关于地图约简的基本字数示例的问题。说我的短信是

  public static class MapClass extends MapReduceBase
implements Mapper<LongWritable, Text, Text, IntWritable> {

private final static IntWritable one = new IntWritable(1);
private Text word = new Text();

public void map(LongWritable key, Text value, 
                OutputCollector<Text, IntWritable> output, 
                Reporter reporter) throws IOException {
  String line = value.toString();
  StringTokenizer itr = new StringTokenizer(line);
  while (itr.hasMoreTokens()) {
    word.set(itr.nextToken());
    output.collect(word, one);
  }
}
My 1
name 1
is 1
X 1
Y 1
X 1     

我的问题是,如果我在地图工作本身做加法,通过保持一个单词和计数的地图。然后迭代映射,并将计数放入输出。会不会对地图减少工作有影响?产出仍将保持不变;然而,这样做是否会更有效率,因为将有更少的条目可供shuffle、sort和reducer操作?

我在地图工作中做加法的想法是正确的吗?

共有1个答案

阎晔
2023-03-14

是的。你应该让你的地图输出尽可能小。进行初步计数将减少在系统中移动的数据量。注意,您仍然需要一个reduce作业来添加每个单词的计数,您的输入可以在Y处拆分,这样两个“x”单词将被转到不同的映射器。

此外,您可以为MapReduce工作做的另一个很好的提高效率的事情是使用组合器。这些是映射步骤完成后映射器节点上的reduce步骤。因此,您可以更多地减少映射作业的输出。

 类似资料:
  • 我浏览了几篇文章,基本上都指出Hive用于结构化处理,Pig用于非结构化处理。我们什么时候需要本地地图缩减?你能指出一些使用Pig或Hive但在原生map Reduce中无法解决的场景吗?

  • 减少图层数量     初始化图层,处理图层,打包通过IPC发给渲染引擎,转化成OpenGL几何图形,这些是一个图层的大致资源开销。事实上,一次性能够在屏幕上显示的最大图层数量也是有限的。     确切的限制数量取决于iOS设备,图层类型,图层内容和属性等。但是总得说来可以容纳上百或上千个,下面我们将演示即使图层本身并没有做什么也会遇到的性能问题。 裁切     在对图层做任何优化之前,你需要确定你

  • 部分型号无法使用此功能。 可确认自己所在的位置,或搜索场所及路径的应用程序。 初次使用应用程序时,会显示是否使用位置数据的确认画面。若要使用位置数据请轻触[是]。关于位置数据的使用,若稍后想变更设定,可进入(设定)>[开始]>[位置数据]进行变更。 轻触屏幕,可将(显示当前位置)或(选项)等项目切换为显示/隐藏。 A ) 搜索栏 B ) (显示列表)/(隐藏列表) 轻触即可将搜索结果列表切换为显示

  • 我正在尝试使用OpenNLP。我需要它从新闻网站(例如:techcrunch)获得新的组织(初创公司)。我有一个组织模型,我用它来识别出版物中的组织(en-ner-organization)。我有一个问题: 如果有一个关于新的初创公司的出版物,它是昨天诞生的,openNlp会承认它是组织吗? 据我所知-没有。直到我不在这个新的初创公司训练模特,对吧?

  • 从文件导入证书时SSL握手失败的后续问题 在该链接中,使用第三方证书时SSL握手失败。 我对此表示怀疑。 一旦服务器向客户端颁发了包含公钥的证书,客户端是否使用服务器的公钥对每条消息进行编码?

  • 但是,我搞错了: **(退出#pid<0.70.0>)退出于:genserver.call(MySupervisor,{:start_child,[#pid<0.70.0>,:Monitor,{:nonode@nohost,#pid<0.81.0>},{:erlang,:apply,[#function<0.118488666 in file:test.exs>,[“long st ring”]]