问题
我们有记录,比如ri,其中i=0,。。。,n.n可以很大(以数百亿为单位(。
每个记录都有多个密钥,kij,其中j=0,。。。,m是小的(比如说20(
我们说,rp=rq,如果kp0=kq0、k1=kq1…、或、kpm=7qm
也就是说,记录是相等的,如果至少有一个键是相等的。我们需要找到这样的记录集,并为这些记录集生成唯一的id。
方法
运行m map reduce jobs,其中每个作业在一个键上减少。
因此,对于作业i,映射器发出(rp,ki(,减少器得到({r1、…、rp}、ki 在所有m个作业结束时,我们将有一组具有相同密钥的记录。 Sk={rl} 我们预计k小于n,但仍可能是数亿,l是一个小数字(比如2到5000之间( 为了获得最终结果,我们需要合并以上至少有一个共同成员的集合。 我有以下问题:
我意识到这是一个ConnectedComponent问题,并且有众所周知的解决方案。