我有以下问题:我有大量的键值对形式的数据。关键是一些id和价值 - 一些文字。我的目标是将这些对象以文本片段以某种方式“相似”分组。所以它看起来像是MapReduce的一项任务,如果将我的文本片段作为关键字,并将id作为值。但是这样的密钥并不是传统的MapReduce使用方式,而且我也没有真正意识到MapReduces框架的内部实现,所以我不确定这种方式是否有效。所以我的想法详细是: 1.在Java中采用一些MapReduce(Hadoop,GridGain) 2.为我的文本块创建特殊类(如TextKey) 3.覆盖类的equals(),打包文本比较逻辑(比如levenstein距离比较,或者其他) 4.重写compareTo()允许MapReduce按键排序(比如说词典排序) 5.可能覆盖hashCode() 6.将我的数据映射到键值对:键 - >文本块,包装在TextKey类中,值 - > IDs 7.简单地通过收集每个“相等”(实际上相似的)键的ID来减少MapReduce与“定制”键
MapReduce可以以这种方式工作吗?右边的地图阶段之后