创建一个CSV文件,其中每行包含两个网址,指定一个链接。即,每行的第一个和第二个值指定了有关链接的来源和目的地。例如:
url1,url2
url1,url3
url2,url3
url4,url5
url2,url4
给定这样的 CSV 文件,编写一个 MapReduce 程序,在相应的 URL 链接中查找长度 2 的所有路径。就是说,它找到了网址的三倍(u,v,w),这样就有一个链接从u到v和一个链接从v到w。 例如,上面的示例 CSV 文件包含以下长度 2 的路径:
url2, url4, url5
url1, url2, url3
url1, url2, url4
现进行到初步代码如下:
class part(MRJob):
def steps(self):
return [MRStep(mapper=self.mapper, reducer=self.reducer)]
#return [MRStep(mapper=self.mapper)]
def mapper(self, key, document):
for word in document.split(','):
yield word, 1
def reducer(self, word, line):
yield word, line
part.run()