使用MRjob进行自然连接

时间:2019-03-04 18:06:26

标签: python join mapreduce mrjob

我正在尝试通过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“]

因此,我并没有真正加入列表,也没有获得所有链接。我怎么能实现我的目标?

0 个答案:

没有答案