Map reduce用于获取两个集合之间的唯一数据集

时间:2013-12-04 04:56:35

标签: mongodb mapreduce

如何使用map reduce在两个集合之间获取一组唯一数据。

CollectionA   CollectionB
X, Y, Z        X, Y, Z
1, 2, 3        1, 4, 5
1, 4, 5
2, 6, 8

目标是在collectionA中列出唯一数据。从上面的例子中,与collectionB相比,集合A中的唯一数据是(1,2,3)和(2,6,8)

我有一个想法是从collectionB中选择所有内容,然后与collectionA进行比较(collectionB大小将小于collectionA)。但这对我没用。

一些sudo代码会有所帮助

1 个答案:

答案 0 :(得分:0)

如果一个集合比另一个集合小得多,那么就有一个优雅的Mapreduce解决方案。 (我是从“Hadoop in Practice”中得到的)。在将集合B添加到DistributedCache时,您可以运行仅处理映射的作业,在该作业中处理集合A的记录。然后,map任务处理许多记录,每个记录将它们与缓存中的每个B记录进行比较,这样就可以省略算法中的排序和减少步骤。