word-doc矩阵
在进行文件分类或文档检索的时候,我们通常需要建立一个word-doc矩阵,来记录每个词在每篇文档中出现的次数。
class Mapper
method map(docid id,doc d)
foreach term in d
Emit(pair(term,id),1)
一种更高效的方法是在mapper侧进行聚合。
class Mapper
method map(docid id,doc d)
H := new AssociativeArray
foreach term in d
H{term} := H{term}+1
foreach term in H
Emit(pair(term,id),H{term})
图的宽度优先遍历
现代的爬虫一般采用宽度优先的规则来遍历网络。还有在Dijkstra算法中也是一种宽度优先的规则--每发再一个新的最近点,就更新与之相邻的节点的dist。我们可以用MapReduce迭代的方式来实现Dijkstra算法。每轮迭代运行一次Map-Reduce,最多迭代N次,N是图中节点的个数。用邻接链表来存储图。算法开始时,起始节点的dist赋0,其余的节点dist赋无穷大。先考虑简单的情形--每条边的权值都是1。