के साथ एकाधिक इनपुट मैपरेडस, एमआरजेब के लिए येल्प के पायथन एपीआई का उपयोग करना सीखने की कोशिश कर रहा हूं। उनका सरल शब्द काउंटर उदाहरण समझ में आता है, लेकिन मुझे उत्सुकता है कि एक व्यक्ति एकाधिक इनपुट से जुड़े एप्लिकेशन को कैसे संभालेगा। उदाहरण के लिए, किसी दस्तावेज़ में शब्दों को गिनने के बजाए, मैट्रिक्स द्वारा वेक्टर को गुणा करना। मैं इस समाधान है, जो काम करता है के साथ आया था, लेकिन मूर्खतापूर्ण लगता है:MRJob
class MatrixVectMultiplyTast(MRJob):
def multiply(self,key,line):
line = map(float,line.split(" "))
v,col = line[-1],line[:-1]
for i in xrange(len(col)):
yield i,col[i]*v
def sum(self,i,occurrences):
yield i,sum(occurrences)
def steps(self):
return [self.mr (self.multiply,self.sum),]
if __name__=="__main__":
MatrixVectMultiplyTast.run()
इस कोड ./matrix.py < input.txt
चलाया जाता है और कारण यह काम करता है यह है कि मैट्रिक्स, कॉलम द्वारा input.txt में संग्रहीत पर इसी वेक्टर मूल्य के साथ पंक्ति का अंत।
तो, निम्नलिखित मैट्रिक्स और वेक्टर:
रूप input.txt के रूप में प्रतिनिधित्व कर रहे हैं:
संक्षेप में, मैं कैसे मैट्रिक्स भंडारण के बारे में जाने के लिए और होगा वेक्टर अलग-अलग फाइलों में स्वाभाविक रूप से और उन्हें एमआरजेब में पास कर रहे हैं?