我正在尝试通过MRJob库使用MapReduce创建URL链接路径加入程序。给出以下网址列表:
url1,url2
url1,url3
url2,url3
url4,url5
url2,url4
我需要实现三元组网址的输出:
url2,url4,url5
url1,url2,url3
url1,url2,url4
这是我到目前为止获得的代码:
from mrjob.job import MRJob
class MRJoin(MRJob):
def mapper(self, key, line):
a = line.split(',')
for word in a:
yield word, a
def reducer(self, word, line):
for i in line:
if word == i[1]:
for i2 in line:
if i2[0] == word:
yield i,i2
if __name__ == '__main__':
MRJoin.run()
这段代码为我提供了以下内容:
[“ url1”,“ url2”] [“ url2”,“ url3”]
[“ url1”,“ url2”] [“ url2,” url4“]
因此,我并没有真正加入列表,也没有获得所有链接。我怎么能实现我的目标?