如何使用map-reduce进行查找(或连接)



如何使用

{worker-id:1 name:john supervisor-id:3}
{worker-id:2 name:jane supervisor-id:3}
{worker-id:3 name:bob}

并产生输出集

{worker-id:1 name:john supervisor-name:bob}
{worker-id:2 name:jane supervisor-name:bob}

使用"纯"map-reduce框架,即只有一个map阶段和一个reduce阶段,但没有任何额外的功能,如CouchDB的查找?

具体细节取决于您的map-reduce框架。但这个想法是这样的。在映射阶段,发出两种类型的键/值对。(1, {name:john type:boss})(3, {worker-id:1 name:john type:worker})。在reduce阶段,您将获得分组在一起的键的所有值。如果其中有boss类型的记录,则删除该记录并填充其他记录的主管名称。如果没有,那么你把那些记录扔在地板上。

基本上,您使用数据按键分组,然后在reduce中一起处理来执行连接。

(在一些map-reduce实现中,您可以在reduce中增量地获得键/值对。在这些实现中,您不能丢弃已经没有boss的记录,因此您最终需要在最后的过滤步骤中使用map-reduce-reduce。

只有一个或多个输入文件??我的意思是,有没有可能我们有一个文件,其中一个工人id有一个主管id,而它的描述(主管id的名称)在另一个文件中??

相关内容

  • 没有找到相关文章

最新更新