《Spark大数据技术与应用案例教程》教案第5课查询考试成绩排名前三的学生信息.docx
《《Spark大数据技术与应用案例教程》教案第5课查询考试成绩排名前三的学生信息.docx》由会员分享,可在线阅读,更多相关《《Spark大数据技术与应用案例教程》教案第5课查询考试成绩排名前三的学生信息.docx(7页珍藏版)》请在课桌文档上搜索。
1、课时2课时(90min)教学目标知识技能目标:(1)掌握SparkRDD的转换操作和行动操作(2)理解RDD持久化和分区素质目标:培养学生熟练SparkRDD操作、持久化和分区的方法,提高学生专业知识技术能力教学重难点教学重点:SparkRDD的操作,RDD持久化和分区教学睚点:SparkRDD分区教学方法案例分析法、问答法、讨论法、i井授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过文旌课堂APP或其他学习软件,完成课前任务杳阅资料请大家了解SparkRDD的操作。【学生】完成课前任务考勤【教师】使用文旌
2、课堂APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:SparkRDD有哪些操作?【鞋】思考、传授新知【教师】通过学生的回答引入新知,介绍SParkRDD操作、RDD持久化和分区的相关知识一、SParkRDD操作【教师】讲解SparkRDD操作的相关知识SparkRDD提供了一系列的操作方法,用于操作分布式数据集。RDD操作可以分为转换(transformation)操作和行动(action)操作。1.SparkRDD的转换操作转换操作是指将一个RDD转换成另一个RDD的操作,它们主要用于处理和清洗数据。常用的转换操作有m叩。、filter()xflatMap()xSo
3、nBy()、Uniono和dislincl()等,详细说明如表2-3所示。表2-3转换操作的详细说明转换操作说明map(func)将一个RDD中的每个元素都应用一个指定的函数func,返回一个新的RDDfilter(func)将一个RDD中的每个元素都应用一个指定的函数func,筛选出符合条件的元素,返回一个新的RDDflatMap(func)与m叩0类似,但flatMap()可以将每个元素映射到多个输出结果中sortBy(keyfunc,ascending.按照指定规则对RDD中的元素进行排序,并返回一个新的RDDe课题查询考试成绩排名前三的学生信息numPartitions)其中,参数ke
4、yfunc表示计算键(key)的函数;ascending(可选)用于指定键的排列顺序,默认值为TrUe,即升序排列;IWmPartiIiOns(可选)表示分区数,默认排序后的分区个数和排序之前的分区个数相等union(otherRDD)将两个RDD合并为一个新的RDD,使得新的RDD包含原来两个RDD中的所有元素distinct()去除RDD中重复的元素,返回一个新的RDD【教师】通过例子,使学生掌握SparkRDD的转换操作【例2-4创建一个RDD,执行map()操作,将RDD中的每个元素都加2,输出结果如图2-10所示。然后,执行SortByo操作,对RDD的所有元素进行排序,输出结果如图
5、2-11所示。最后,执行filter。操作,过滤出RDD中的偶数,输出结果如图2-12所示。hadoopbogon$pyspark跄!J建一个包含数字的RDDrdd=sc.parallelize(6,11,1,8,2,9,4,5)# 将RDD中的每个元素加2add-rdd=rdd.map(lambdax:x+2)# 输出加2后的RDD元素add_rdd.collect()麻序Sorted.numbers=add-rdd.sortBy(lambdax:x)# 输出排序后的RDD元素sorted_numbers.collect()# 过滤出RDD中的偶数filtered_rdd=sorted_nu
6、mbers.filter(lambdax:x%2=0)# 输出RDD中的偶数元素filtered_rdd.collect()addrdd.collect()sortednumbers.collect()(8,13,3,10,4,11,6,73,4,6,7,8,10,11,13图2-10加2后的RDD元素图2-11排序后的RDD元素filteredrdd.collect()4,6,8,101图2-12RDD中的偶数元素【例2-5】读取本地文件7usrlocalSPark/mycode/hello_spark.txt”中的数据创建RDDe然后,执行fatMap()操作,以空格为分隔符将每行字符串分
7、割成一个个单词,输出结果如图2-13所hadoopbogon$pyspark机卖取hello_spark.txt文件中的数据创建RDDIines=Sc.iextFile(file:/usr/local/spark/mycoWOrdSjdd=lines.flatMap(lambdaline:line.split()# 输出分割成单词后的RDD元素# WOrdS_rdd.(breach(PrinI)words.rdd.foreach(print)HelloSparkIloveSpark图2-13分割成单词后的RDD元素【例2-6创建两个RDD(即rddl和rdd2),执行union。操作合并rdd
8、l和rdd2,输出结果如图2-14所示。然后,执行distinct。操作,去除RDD中重复的元素,输出结果如图2-15所示.hadoop()bogon$pyspark rdd1=sc.parallelize(apple,banana,orange)rdd2=sc.parallelize(pear,grape,apple)蛤并RDDrdd3=rddl.union(rdd2)懒出合并后的RDD元素rdd3.collect() 去重 rdd-distinct=rdd3.distinct() 输出去重后的RDD元素rdd_distinct.collect()rdd3.collect()apple,ba
9、nana,orange,pear,grape,apple图2-14合并后的RDD元素rdd.distinct.COllectO(,orange,pear,applelgrape,banana图2-15去重后的RDD元素二、SParkRDD的行动操作【教师】讲解SparkRDD行动操作的相关知识行动操作是指对RDD数据集进行实际计算并返回结果的操作。常用的行动操作有CoUnl()、ColIeCt()、first。、take。、reduce。和foreach()等,详细说明如表2-4所示.表2-4行动操作的详细说明行动操作说明count()返回RDD中元素的数量collect()将RDD中的所有元
10、素收集到一个数组中,并返回该数组first()返回RDD中的第一个元素take(n)返回RDD中的前n个元素reduce(func)使用指定的函数func对RDD中的元素进行聚合计算,返回最终结果foreach(func)对RDD中的每个元素应用指定的函数func【教师】通过例子,使学生掌握SparkRDD的行动操作【例2-7创建RDD,执行不同的行动操作,代码和运行结果如图2-16所示。rdd=sc.parallelize(l,2,3,4.j)rdd.count()rdd.first()rdd.take(4)(L2,3.4)rdd.reduce(lambdaatb:aeb)120rdd.co
11、llect()1.2t3,4,53图2-16执行不同行动操作的代码和运行结果【高手点拨】Tambdaa,b:a*b是使用Python的Iambda语法定义的一个lambda函数。该函数接受两个参数a和b,并对它们执行乘法(*)操作.例2-7中,依次取出RDD的元素1和2,执行乘法操作得到2,并将得到的2赋值给a,取出RDD的元素3赋值给b,与2相乘得到6。以此执行,直到RDD的元素全部取出为止。三、SParkRDD持久化【教师】讲解SParkRDD持久化的相关知识在迭代计算中,通常需要多次使用同一组数据。如果需要多次使用同一个RDD,则每次调用都需要执行与该RDD相关的一系列转换操作,这可能导
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spark大数据技术与应用案例教程 Spark 数据 技术 应用 案例 教程 教案 查询 考试成绩 排名 学生 信息
链接地址:https://www.desk33.com/p-1242650.html