使用MapReduce查找集合元素之间的关系

时间:2019-02-07 10:42:20

标签: mapreduce

我的输入集如下: 1,abcd 2,acbd

我想找到诸如a-> b之类的关系,即b遵循a;(b-> c和c-> b)即b和c在两组中彼此遵循;和a!-> d,即在这两个集合中a和d都不跟随(“ follow”表示“立即跟随”)

我的多阶段map-reduce函数如下:

Step1,Mapper1:键,值= 1,abcd Step1,Mapper2:kv = 2,acbd

Step1,Reducer1:每个可能的对的kv =,kv =,kv =,kv =等

Step1,Reducer2:kv =,kv =,kv =,kv = ...

我要做的是在用作密钥之前对对进行排序(即密钥将是bc而不是cb)。如果在集合中找不到该对,则值为0;如果找到该对,则值为1;如果找到相反的对,则值为2。

现在,Step2,Reducers,将获得这些排序对 Step2,Reducer1:ab:1,0 Step2,Reducer2:bc:1,2 Step2,Reducer3:广告:0,0 ...

如果我看到1,0或0,1或1,1,则表示->。 如果我看到1,2或2,1,则意味着两种关系都成立 如果我看到0,0,则表示没有关系。

这看起来正确吗? (从经验上讲,这似乎不错)

谢谢。

0 个答案:

没有答案