欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《Spark大数据技术与应用案例教程》教案第4课读取学生成绩创建RDD.docx

    • 资源ID:926292       资源大小:99.80KB        全文页数:6页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《Spark大数据技术与应用案例教程》教案第4课读取学生成绩创建RDD.docx

    课题读取学生成绩创建RDD课时2课时(90min)教学目标知识技能目标:(1)掌握RDD的执行过程和依赖关系(2)掌握SparkRDD的创建方法素质目标:促使学生学习SparkRDD的执行过程、RDD之间的依赖关系,以及创建RDD的不同方法,培养学生创建SparkRDD弹性分布式数据集,使用Spark分析和统计学生成绩教学重难点教学重点:RDD的执行过程和依赖关系,SparkRDD的创建方法教学难点:能读取数据创建RDD教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务请大家了解RDD的相关知识。【学生】完成课前任务考勤【教师】使用APP迸行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:假如让你用Spark分析和统计一个班级的成绩数据,你会如何做?【学生】思考、举手回答传授新知【教师】通过学生的回答引入新知,介绍SparkRDD的执行过程、SparkRDD之间的依赖关系和SparkRDD的创建等知识一、SParkRDD的执行过程【教师】利用多媒体展示“RDD的特性"和"RDD典型的执行过程”图片,并进行讲解弹性分布式数据集(resilientdistributeddatasets.RDD)是Spark中最基本的抽象概念之一,它是一个不可变的、弹性的、可分区的分布式数据集合。每个RDD可以分成多个分区,每个分区就是一个数据集片段.一个RDD的不同分区可以存储在集群的不同节点上,从而实现分布式计算。RDD的特性如图2-1所示。RDD的每个元素都可以 被序列化,并且RDD本 身也是可以序列化的, 这使得RDD可以在网络 上传输G某个节点或任务发£ 故障时,RDD可以自动 恢复到正常状态,保证 了 SPark的容错性KDD将数据划分为多? 分区存储,每个分区可 以在不同的节点上进行 计算,从而实现分布式XZ、作DD一旦创建,就不能倒H改,只能通过转换操作生成)相的RDDJZRDD只支持粗粒度修改,即Y只针对整个数据集进行转换J操作,不能针对数据集中的某个元素进行转换操作Z、RDD提供了多种转换操作和÷行动操作,方便开发人员对,数据进行处理和分析图21RDD的特性RDD屏蔽了复杂的底层分布式计算,为用户提供了方便的数据转换和求值方法,其典型的执行过程如图2-2所示。图2-2RDD典型的执行过程下面对RDD典型的执行过程进行详细介绍。(I)创建RDDeSpark会读取数据源(如本地文件系统、HDFS.数据库等)中的数据创建RDDe(2)转换操作。对已有RDD进行各种转换操作。这些操作都是情性求值的,也就是说不会立即执行,而是在遇到行动操作时才会执行。每次转换操作都会生成一个新的RDD,该RDD会记录其与前一个RDD的依赖关系,并形成T有向无环图(DAG).(3)行动操作。执行针对RDD的行动操作得到值(值也是RDD),可以将颤回给驱动程序或者输出到外部存储系统。【教师】提出问题:如果要重复使用某个RDD,应如何做?【学生】聆听、思考、回答【教师】总结学生的回答如果需要重复使用某个RDD,可以使用持久化操作将其缓存到内存中,以加快后续操作的速度。例如,RDD执行过程的一个实例(详见教材)二、SParkRDD之间的依赖关系【教师】讲解SparkRDD之间有哪些依赖关系在Spark中,不同的操作使不同的RDD之间产生了不同的依赖关系,这些依赖关系可以分为窄依赖(narrowdependency)和宽依赖(widedependency)o在理解依赖关系之前需要了解以下基本概念。(1)父RDDe父RDD是指在Spark中生成当前RDD的原始数据集,每个RDD可以有一个或多个父RDD。(2)子RDDe子RDD指的是通过对父RDD进行转换操作派生出来的新RDDe(3)Shuffle操作。Shuffie操作是指根据某个键(key)对元素进行重新分区和重新组合的过程。Shufe操作将数据从源分区移动到目标分区,并对数据进行排序或聚合等操作.1.窄依赖1 .窄依赖【教师】利用多媒体展示“窄依赖”图片,并进行讲解窄依赖是指父RDD的每个分区最多被子RDD的一个分区所使用,子RDD分区通常对应一个或多个父RDD分区。当RDD执行map()、filterQ、UniOn()和对输入做协同划分的join。等操作时,就会产生窄依赖,如图2-4所示。这些操作不需要改变雌的分布方式,只是对父RDD每个分区中的元素做出一定处理,并将结果写入子RDD分区中即可。图2-4窄依赖map()>filter()【教师】提出问题什么是协同划分?【学生】聆听、思考、回答【教师】总结学生的回答协同划分是指多个父RDD的某一分区的所有键(key)只落在子RDD的同一分区内.2 .宽依赖【教师】利用多媒体展示"宽依赖”图片,并进行讲解宽依赖是指父RDD的每个分区都可能被子RDD的多个分区所使用,子RDD分区通常对应所有的父RDD分区。当RDD执行groupByKey()和对输入做非协同划分的join。等操作时,就会产生宽依赖,如图2-5所示。这些操作需要对输入雌进行全局排序和合并,并将结果重新分配到不同的节点上进行处理。groupByKey()对输入做非协同划分的join。图2-5宽依赖.(详见教材)三、SParkRDD的创建【教师】讲解SParkRDD的创建方法在Spark中,创建RDD的方法有三种:第一种是集合并行化创建RDD;第二种是读取外部存储系统的数据创建RDD;第三种是对已有的RDD进行转换得到新的RDD(该方法将在后续的RDD转换操作中i锚讲解)1 .集合并行化创建RDDSparkContext是Spark与集群通信的主要入口点,它支持从不同的数据源加载数据创建RDD,还支持执行不同的RDD操作。在开发独立应用程序时,首先使用SParkConf()方法创建SParkConf对象,然后使用setter方法配置Spark应用程序的相关属性,最后基于上述配置创建一个SparkContexi对象。参考示例如下。frompysparkimportSparkConf,SparkContext#创建SParkCon对象conf=SparkConf().setApName("AppName").setMaster("URL")#创建SparkContext对象sc=SparkContext(Conf=Conf)SParkCOnf对象常用的SeIter方法如表2-1所示。表2-1SparkConf对象常用的setter方法方法说明SetAppName(Value)设置SPark应用程序的名称。参数VaIUe为名称setMaster(value)设置Spark应用程序的主节点URL在Spark中,使用SparkContext类中的ParaIIeliZe()方法可以将一个已经存在的Python列表、元组或集合转换为RDD,从而实现并行化处理.该方法的基本格式如下.parallelize(c,numSlices)其中,参数的含义如下。(l)c:要并行化的数据集合,该集合可以是Python列表、元组或集合。(2)numSlices(可选):分区数,若不设置分区数,则RDD的分区数默认为该程序分配到的资源的CPU核心数。【教师】通过例子,帮助学生掌握集合并行化创建RDD的方法【例2-1使用PaHleHZeo方法创建RDD,然后输出RDD的元素和默认分区数,如图2-6所示。# 进入pyspark交互式执行环境hadoop(>bogon$pyspark# 使用ParalIeliZeO创建RDD»>rdd=sc.arallelize(1,2,3,4,5)# 输出RDD的元素»>rdd.collect()# 查看RDD默认分区数»>rdd.getNumPartitions()>>>rdd.collect()1,2,3,4,5)AAArdd.getNumPartitions()4图2-6RDD的元素和默认分区数【小提示】上述代码中使用了Spark提供的SparkContext对象,名称为sc该SparkContext对象是PySPark启动时自动创建的,在交互式执行环境中可以直接使用。代码中使用的行动操作方法将在后面小节中详细介绍。2.读取外部存储系统的数据创建RDD外部存储系统包括本地文件系统、Hadoop分布式文件系统(Hadoopdistributedfilesystem,HDFS),以及Hadoop支持的其他文件系统.在Spark中,使用SparkContext对象的IeXtFiIeo方法可以从外部存储系统中读取不同格式文件中的数据创建RDD0该方法的基本格式如下。textFile(name.minPartitions,use-unicode)其中,参数的含义如下.(1)name:要读取的数据文件的路径。(2)minPartitions(可选):建议生成的RDD的最小分区数。(3)use_unicode(可选):是否在读取文件时使用Unicode编码。默认值为True,表示使用Unicode编码解析文本文件;如果设置为False,则使用其他编码(如UTF-8)来处理文本数据。【教师】通过例子,帮助学生掌握通过读取外部存储系统的数据创建RDD的方法【例2-2本地文件系统中存放一个"usrIOCaI/saprk/mycode/hello_spark.txt”文件,该文件包含两句话,分别是“HeIIoSpark”和,IloveSparkf,0使用textFile()方法读取本地文件系统中文本文件的数据创建RDD,然后输出RDD的元素,如图2-7所示。(hadoop(>bogon$pyspark# 读取本地文件创建RDD# »words=sc.textFile("file:/usr/local/spark/mycode/hello_spark.txt,')# 输出RDD的元素»>words.fbreach(print)»>words,foreach(print)HelloSparkIloveSpark图2-7输出RDD(words)的元素【小提示】新建"heHo_spark.ixt"文件,并将内容输入文件中。读取本地文件数据时需要在文件路径前面加上"file:/"【例2-3在HDFS中创建“ZheHosparlUxt”文件,该文件包含两句话,分别是"HeHoSpark”和oIloveSpark”o使用textFile()方法读取HDFS中的文本文件创建RDD,然后输出RDD中的元素,如图2-8所示。# 启动Hadoophadoop()bogon-Cdusrlocalhadoosbinhadoopbogonsbin$./start-dfs.sh科在HDFS中创建hellospark.ixt文件|hadoopbogonsbin!$echo-e"HelloSparknIloveSpark"hadoopfs-put-/hellospark.txthadoop(3)bogon$pyspark# 读取HDFS中的文本文件创建RDD

    注意事项

    本文(《Spark大数据技术与应用案例教程》教案第4课读取学生成绩创建RDD.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开