蟒蛇记忆中的mapreduce。
tinymr的Python项目详细描述
受Spotify’s luigi framework启发的实验性Pythonic MapReduce
典型字数示例
目前有两个MapReduce实现,一个包括排序和 没有的人下面的示例不会从排序中受益,因此我们可以 利用不排序的固有优化。API是相同的 但是tinymr.memory.MRSerial()在分区之后以及在 reducer()和final_reducer()
importjsonimportreimportsysfromtinymr.memoryimportMRSerialclassWordCount(MRSerial):def__init__(self):self.pattern=re.compile('[\W_]+')defmapper(self,item):forwordinitem.split():word=self.pattern.sub('',word)ifword:yieldword.lower(),1defreducer(self,key,values):yieldkey,sum(values)deffinal_reducer(self,pairs):return{k:tuple(v)[0]fork,vinpairs}wc=WordCount()withopen('LICENSE.txt')asf:out=wc(f)print(json.dumps(out,indent=4,sort_keys=True))
截断输出:
{"a":1,"above":2,"advised":1,"all":1,"and":8,"andor":1}
开发
$ git clone https://github.com/geowurster/tinymr.git $cd tinymr $ pip install -e .\[dev\]$ py.test tests --cov tinymr --cov-report term-missing
许可证
见LICENSE.txt
变更日志
见CHANGES.md