假设我们希望通过MapReduce实现本地敏感散列(LSH)。具体来说,假设签名矩阵的块由列组成,元素是键值对,其中键是列号,值是签名本身(即值的向量)。
(a)演示如何为所有带生产桶,作为单个MapReduce过程的输出。提示:请记住,Map函数可以从单个元素生成多个键值对。
(b)显示另一个MapReduce进程如何将(a)的输出转换为需要比较的对列表。具体来说,对于每一列i,都应该有一个列j>i的列表,需要与之进行比较。
发布于 2015-04-07 17:52:00
(a)
map(key, value: element):
split item to bands
for band in bands:
for sig in band:
key = hash(sig) // key = bucket id
collect(key, value)
reduce(key, values):
collect(key, values)(b)
map(key, value):
for itemA, itemB in combinations(value)
key = (itemA.id, itemB.id)
collect(key, [itemA, itemB])
reduce(key, values):
collect(key, values)https://stackoverflow.com/questions/29320943
复制相似问题