输入文件在你每次点击评测的时候,平台会为你创建,无需你自己创建,只需要启动HDFS,编写python代码即可。
第1关:成绩统计
- mapper.py
#! /usr/bin/python3
import sys
def main():
for line in sys.stdin:
line = line.strip()
mapper(line)
# 使用name,age分别表示姓名和年龄
def mapper(line):
########## begin ############
group = line.split('\\n')
for people in group:
if len(people.strip()) == 0:
continue
name, age = people.split(' ')
########### End #################
print("%s\t%s" % (name, age))
if __name__ == '__main__':
main()
- reducer.py
#! /usr/bin/python3
import sys
from operator import itemgetter
# 找出values的最大值,并按name\tmax_age的形式输出。
def reducer(k, values):
##### Begin #########
print("%s\t%s" % (k,max(values)))
##### End #########
#############################################
# mapper的输出经过分区处理后,数据行按照键排序;
# 具有相同键的行排在一起;

文章展示了三个MapReduce的例子:1)使用Python实现成绩统计,通过Mapper和Reducer找出每个人的最高年龄;2)文件内容合并去重,Mapper拆分输入,Reducer处理并去重;3)信息挖掘,Mapper处理父子关系数据,Reducer找出祖父和孙子的关系。
最低0.47元/天 解锁文章
429

被折叠的 条评论
为什么被折叠?



