我读了http://en.wikipedia.org/wiki/MapReduce的mapreduce,了解了如何在很多“文档”中获取“单词”数量的例子。但是我不明白以下行:MapReduce与函数式编程中的map-reduce组合的区别
因此,MapReduce框架将(键,值)对列表转换为值列表。这种行为与函数式编程映射和减少组合不同,后者接受任意值列表并返回一个结合了map返回的所有值的单个值。
有人可以再次阐述差异(MapReduce框架VS地图和减少组合)吗?特别是,reduce函数编程是做什么的?
非常感谢。
关于“在所述值的类型上根本没有约束”:您听起来好像MapReduce需要特定的数据结构一样。它不是。 – 2010-01-23 04:55:05
那么,MapReduce文件确实将Map步骤描述为产生键/值对的列表。这不需要特定的数据结构 - 像链表或散列表 - 但肯定似乎需要特定的数据结构 - 即键和值之间的映射。这就是为什么我在答案中使用后面的表达式。话虽如此,我认为没有什么可以阻止类似MapReduce的操作在适当时继续处理不同结构的数据......但我不知道这是否属于专利的措辞(a * boo! *用于软件专利!)。 – 2010-01-23 05:13:23
此外,当然没有理由为什么键/值对中的值需要具有任何特定的类型......我当然从来不打算暗示这一点。 – 2010-01-23 05:16:33