当前位置:首页 > 行业动态 > 正文

如何通过mapreduce iterable_MapReduce实现高效的数据统计?实例代码揭秘!

下面是一个简单的MapReduce Python实现,用于统计字符串中每个单词的出现次数,这个例子使用了Python标准库中的collections模块来简化计数过程。

如何通过mapreduce iterable_MapReduce实现高效的数据统计?实例代码揭秘!  第1张

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函数,并打印出每个单词及其出现次数。

1