栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

利用pyspark练习sparkRDD算子的操作练习实验

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用pyspark练习sparkRDD算子的操作练习实验

实验名称

RDD算子的操作实验

实验目的

掌握RDD算子的基本用法

实验资源
  • student.txt
实验环境
  • VMware Workstation
  • Ubuntu 16.04
  • Jupyter Notebook
  • Pyspark
实验内容

student.txt中的数据一共分为6列,每一列含义如下表所示:

班级号姓名年龄性别课程分数

练习题目:
(1) 读入studnet.txt文档,生成RDD

(2) 获得年龄大于20的学生

(3) 获得性别为男的学生

(4) 获得班级号为10的学生

(5) 获得语文课的平均分

(6) 获得每个学生的平均成绩

(7) 获得每个科目的最高分

实验步骤

1、读入student.txt文档,生成RDD

rdd = sc.textFile("/home/test/student.txt")
rdd2 = rdd.map(lambda x : x.split(" "))

2、获得年龄大于20的学生

rdd2.filter(lambda x : int(x[2])>20).collect()

3、获得性别为男的学生

rdd2.filter(lambda x : x[3]=='男').collect()

4、获得班级号为10的学生

 rdd2.filter(lambda x : int(x[0]) == 10).collect()

5、获得语文课的平均分

rdd3 = rdd2.filter(lambda x : x[4]=='chinese')
sum = rdd3.map(lambda x : x[5]).reduce(lambda x,y:int(x)+int(y))
count = rdd3.count()
avg = sum/count #64.16666666666667

6、获得每个学生的平均成绩

 rdd4 = rdd2.map(lambda x:(x[1],int(x[5])))
 rdd4.reduceByKey(lambda x,y:x+y).map(lambda x: (x[0],x[1]/3)).collect()

7、 获得每个科目的最高分

rdd5 = rdd2.map(lambda x : (x[4],int(x[5])))
rdd6 = rdd5.groupByKey() 
rdd6.map(lambda x : (x[0],max((x[1])))).collect()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850458.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号