2017-05-14 12 views
0

3つのデータベースmovies.dat、users.dat、ratings.datからデータを抽出したいと思います。平均的な男性格付けから平均女性格付けを引いた値の高い映画と、平均女性格付けの値が最も高い映画から平均的な男性格付けを引いたものを特定する。男性が最も高く評価している女性は女性ではなく、男性は女性が最も高い評価を受けている映画の一つです。私はmapper.pyのコードを書いており、データを減らしたい、ロジックとコードの助けが必要です。 は、ここに私のmapper.pypythonのhadoopマッパー/レデューサー

for line in sys.stdin: 
line=line.strip() 
lst = line.split("::") 
if len(lst) == 4: 
userID=lst[0] 
     movieID=lst[1] 
     rating=lst[2] 
elif len(lst)==5: 
userID=lst[0] 
     gender=lst[1] 
else: 
movieID=lst[0] 
print '%s, %s, %s'%(movieID,rating,gender) 

答えて

0

3データセットがある場合、次のことがあなたのマッパーであるべきです。

import sys 

for line in sys.stdin: 


line=line.strip() 
lst = line.split("::") 
if len(lst) == 5: 
    user=lst[0] 
    gender=lst[1] 
print '%s^%s^%s^%s^%s'%(user,gender,0,0,0) 
elif len(lst)==4: 
user=lst[0] 
    movie=lst[1] 
    rating=lst[2] 
    print '%s^%s^%s^%s^%s'%(user,0,movie,rating,0) 
else: 
movie=lst[0] 
title=lst[1] 
print '%s^%s^%s^%s^%s'%(0,0,movie,0,title) 
+0

私はレデューサーのコードが必要です! –