定义Map函数 def map_function(line): # 将每一行拆分为单词,并返回一个包含单词的列表 words = line.split() # 生成(word, 1)的键值对 return [(word, 1) for word in words] 定义Reduce函数 def reduce_function(mapped_values): # 初始化一个空字典来存储单词和它们的计数 word_counts = {} # 遍历map函数返回的值 for word, count in mapped_values: # 如果单词已经在字典中,增加计数 if word in word_counts: word_counts[word] += count # 如果单词不在字典中,添加到字典中并设置计数为1 else: word_counts[word] = count # 返回统计结果 return word_counts 定义一个函数来执行MapReduce过程 def map_reduce(input_data): # 将输入数据拆分为多个行 lines = input_data.split(' ') # 对每一行应用map函数 mapped_values = [map_function(line) for line in lines] # 将所有映射值合并为一个列表 all_mapped_values = [item for sublist in mapped_values for item in sublist] # 对合并后的映射值应用reduce函数 reduced_values = reduce_function(all_mapped_values) return reduced_values 示例文本数据 sample_text = """ Hello world This is a simple example MapReduce is powerful """ 执行MapReduce过程 result = map_reduce(sample_text) 打印结果 for word, count in result.items(): print(f"{word}: {count}")
这段代码首先定义了一个Map函数,它接收一行文本,将其拆分为单词,并返回一个单词及其计数的列表,接着定义了一个Reduce函数,它接收映射函数的输出,并统计每个单词的总数。map_reduce
函数将文本数据拆分为行,应用Map函数,合并映射结果,然后应用Reduce函数,并返回最终的统计结果。
运行上述代码将输出每个单词及其在示例文本中出现的次数。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1122994.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复