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

Join 如何使用map reduce进行查找(或连接)?,join,mapreduce,lookup,Join,Mapreduce,Lookup,如何使用take输入集 {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} 使用“纯”映射缩减框架,即只有映射阶段和缩减阶段,但没有任何额外功能,如Co

如何使用take输入集

{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}

使用“纯”映射缩减框架,即只有映射阶段和缩减阶段,但没有任何额外功能,如CouchDB的查找?

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

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

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

(在某些map reduce实现中,您会以增量方式将键/值对放在reduce中。在这些实现中,您不能丢弃没有boss的记录,因此您最终需要映射reduce以进行最后的筛选步骤。)