hadoop - map() 和 reduce() 应该返回相同类型的键/值对吗?

标签 hadoop mapreduce

在编写 MapReduce 作业(如果相关,特别是 Hadoop)时,必须定义一个 map() 和一个 reduce() 函数,两者都会产生一系列键/值对。键和值的数据类型由应用程序自由定义。

在字数统计的典型示例中,这两个函数都产生类型为 (string, int) 的对,键是一个字,值是出现次数。在这里 - 以及我见过的所有其他示例 - 输出的键和值类型在两个函数之间是一致的。

map()reduce() 生成的键/值对的类型必须/应该在任何 MapReduce 应用程序中相同吗?如果是:为什么?

最佳答案

没有。显然,map 的输出对类型和 reduce 的输入对类型必须相同,因为一个被传递到另一个。

但是,您的 reduce 任务很可能会输出与传入的 map 对不同的类型 - 例如,如果 map 任务计算文档中的单词,而 reduce 任务计算的是平均单词频率。在这种情况下,map 将发出整数,而 reduce 将发出 float 。

关于hadoop - map() 和 reduce() 应该返回相同类型的键/值对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1859420/

相关文章:

hadoop - 无法将虚拟盒中的HDP 2.6沙盒与桥接网络连接

java - MapReduce - 不调用 Reduce

hadoop - 从 hadoop 中的映射器中消除重复的键/值对

javascript - 使用 .reduce() 对数字进行因式分解

regex - 是否有解决方法允许在 Mongodb 聚合管道中使用正则表达式

google-app-engine - 在 Google 应用引擎上部署 Mahout

hadoop - 强制 YARN 在所有从站上部署 Spark 任务

regex - 使用 REGEX 在 Hive Create 和 Load Query 中获取空值

hadoop - 从 ozzie hadoop 运行安装 pig

hadoop - 在 map-reduce 输出中重复 "keys"?