下面是一个简单的MapReduce Python实现,用于统计字符串中每个单词的出现次数,这个例子使用了Python标准库中的collections
模块来简化计数过程。
from collections import defaultdict Mapper function def mapper(input_value): for word in input_value.split(): yield word, 1 Reducer function def reducer(mapped_values): result = defaultdict(int) for word, count in mapped_values: result[word] += count return result Main function to execute MapReduce def mapreduce(input_data): # Step 1: Map mapped_data = mapper(input_data) # Step 2: Shuffle and Reduce reduced_data = reducer(mapped_data) return reduced_data Sample input input_data = "Hello world! Hello MapReduce. This is a sample input for MapReduce." Execute MapReduce result = mapreduce(input_data) Print the result for word, count in result.items(): print(f"{word}: {count}")
这段代码定义了两个函数mapper
和reducer
,以及一个主函数mapreduce
来执行MapReduce过程。
1、mapper
函数接收一个输入值,将其分割成单词,并生成一个(word, 1)对,表示一个单词的出现。
2、reducer
函数接收来自mapper
的输出,通过累积每个单词的出现次数来生成最终的统计结果。
3、mapreduce
函数首先调用mapper
,然后对结果调用reducer
,并返回最终的统计结果。
我们用一个示例输入字符串来调用mapreduce
函数,并打印出每个单词及其出现次数。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1174740.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复