【问题标题】:Reduce properties which I'm not sure about减少我不确定的属性
【发布时间】:2014-02-06 06:42:30
【问题描述】:

我是编写 map-reduce 的初学者,我不确定一些 reduce 函数属性。

所以,reduce 获取(键,值列表)作为输入参数...

  1. 是否保证输入值列表始终包含至少 2 个成员?那么,mapper 发出的唯一键永远不会传递给 reducer?
  2. 或者,如果输入列表中只有一项,是否保证键是唯一的?
  3. 可以减少发出比输入值列表大小更多的值吗?
  4. 我有一个很大的字符串列表。我需要找到所有不是唯一的。我可以只用一张地图/减少吗?我看到的唯一方法是通过一个 map/reduce 计算所有唯一字符串,然后选择另一个 map/reduce 不唯一的字符串

谢谢

【问题讨论】:

标签: hadoop mapreduce


【解决方案1】:

reduce() 方法的输入值列表可能有一个或多个,但不能有零个成员。

从/映射到唯一键值的所有值都作为列表与键值一起传递给reduce。如果该列表包含一个成员,那么您可以假设该键值仅映射到一个值(或一次,如果您正在计算)

您的 reducer 可以为给定的输入键和值列表写入任意数量的键值对,包括零。输入键/值的类型可能与输出键/值对的类型不同。

您可以通过一个 map/reduce 步骤解决您的问题

【讨论】:

    【解决方案2】:

    所以,字符串的问题,伪代码:

    map(string s) {
        emit(s, 0);
    }
    
    
    reduce(string key, list values) {
        if (valies.size() > 1) { emit(key, 1); return; }
        if (valuse.contains(1)) { emit(key, 1); return; }
    }
    

    对吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 2019-06-15
      • 2022-01-24
      • 1970-01-01
      相关资源
      最近更新 更多