09-独立程序求学生的平均成绩

问题:
编写独立应用程序实现求平均值问题 每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生名字,第二个是学生的成绩;编写Spark独立应用程序求出所有学生的平均成绩,并输出到一个新文件中。下面是输入文件和输出文件的一个样例,供参考。

Algorithm成绩:
小明 92
小红 87
小新 82
小丽 90
Database成绩:
小明 95
小红 81
小新 89
小丽 85
Python成绩:
小明 82
小红 83
小新 94
小丽 91
平均成绩如下:
    (小红,83.67)
    (小新,88.33)
    (小明,89.67)
    (小丽,88.67)

编程思路

  1. 把三个文件分别读取,然后整合成一个文件,最终格式:姓名 成绩 学科
  2. 按照scala代码的思路,统计每个人的平均成绩即可

pyspark实现

# 读入数据
str_path = '../测试数据/spark/课程数据/'

course_list = [
    'Algorithm',
    'DataBase',
    'python',
]

rdd_data = []
for course in course_list:  
    path = str_path + course + '.txt'
    print(path)
    rdd = sc.textFile(path)
    rdd_data.append(rdd)

print(rdd_data)

# 把所有rdd合并成一个
rdd_total = rdd_data[0]
for i in range(1, len(rdd_data)):
    rdd_total = rdd_total.union(rdd_data[i])

print('所有数据:')
print(rdd_total.collect())

# 求每个人的平均值
stu_1 = rdd_total.map(lambda x: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值