网站大量收购独家精品文档,联系QQ:2885784924

Spark大数据分析与实战(Python+PySpark)课件 第2章 SparkRDD离线数据计算.pptx

Spark大数据分析与实战(Python+PySpark)课件 第2章 SparkRDD离线数据计算.pptx

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第2章SparkRDD离线数据计算Spark大数据分析与实战

01RDD基本原理和编程模型0203目录CONTENTS04Spark文件读写SparkRDD数据计算实例SparkRDD常用操作

01RDD基本原理和编程模型RDD基本原理RDD编程模型

RDD基本原理Dataset:海量数据集合,是一种过程性的数据集,用过的数据会被丢弃(除非缓存)Distributed:通过分区机制分散到不同计算节点Resilient:存储在内存或磁盘,容错,动态分区Readonly:只读,每次计算会生成新的RDDRDD(ResilientDistributedDataset,弹性分布式数据集)是Spark的核心设计理念,代表一个不可变、可分区且可在不同节点(计算机)并行计算的“数据集合”,是一种分布式计算模型的极佳数据抽象RDD是Spark的一个关键数据结构。一方面,RDD是一种可容纳海量数据的集合;另一方面,RDD的数据元素是分布式的,这意味着数据可位于不同计算机的内存中,但在逻辑上仍属于一个整体,使用起来也和普通的集合没太大差异

RDD数据集在实现上被划分成多个分区(即分组),这些分区数据可单独分配到不同的计算节点上,从而实现分布式计算的功能当Spark读取文件时,每个数据块被转换为RDD的一个分区,这些分区共同构成完整的RDD数据集。RDD的每个分区数据之所以能在不同计算节点上处理。虽然RDD数据集在逻辑上是一个整体,但在形态上是以“分区”为单位将数据块分散到不同节点上去计算处理的RDD基本原理

RDD编程模型RDD的编程模型类似一种流水线的操作,流水线上生成的各RDD经过反复迭代计算,会源源不断产生新的RDD。自RDD的创建开始,中间经过若干次的Transformation迭代,直到Action为止,这样就能得到处理后的结果数据,整个计算过程即宣告结束Spark主要支持两类与RDD相关的操作:Transformation(转换)算子和Action(行动)算子转换算子,是指一个在RDD数据集上的并行化方法的调用,它们都是RDD对象上的方法,形式上类似普通Python对象方法,但能够支持在集群节点上并行执行。当转换算子作用于RDD时,会生成一个新的RDD,比如map、filter、reduceByKey等都是转换算子行动算子是用来真正启动执行RDD转换计算的,并将产生的结果数据返回应用程序或保存到磁盘,像collect、saveAsTextFile等都是行动算子

RDD编程模型RDD的转换操作采取了一种称为“lazy”的延迟计算工作模式,即延迟执行。也就是说,调用RDD的转换算子,并不会被立即提交到CPU上执行,只有在遇到RDD的行动算子时,才会开始启动整个RDD计算链的执行,所以行动算子也可以被看成触发RDD转换计算执行的一个“发令枪”RDD的转换操作,实际只是一系列的计算步骤,类似于“工作计划”,只有等到执行RDD行动算子时,才会启动真正的运行。正是这种设计,Spark在实际执行RDD的数据元素计算之前,可以先优化整个计算链

RDD编程模型Spark支持的RDD功能操作,可在pyspark命令启动的PySparkShell交互式编程环境中查看在“.”之后连续按两次Tab键,此时终端会列出所有在RDD数据集上支持的Transformation(转换)操作和Action(行动)操作PySparkShell编程环境支持自动补全内容,这意味着用户只需输入部分代码的关键字母,比如rdd.co,然后按Tab键,系统会自动补全以co开头的方法。如果以co开头的方法不只有一个,PySparkShell就会把它们全部列出来,在这种情形下,只需继续输入方法的其他关键字母直到能区分出来为止,再次按Tab键后,完整的方法名字就自动补全了

02SparkRDD常用操作RDD的创建RDD的转换操作(Transformation)RDD的行动操作(Action)

RDD的创建在使用RDD对数据进行处理之前,一般要先准备好数据源。Spark为用户设计了各种方便得到初始RDD的途径,包括从普通Python集合创建RDD(List列表数组、Touple元组、Set集合等)、从外部文件创建RDD(本地文件、HDFS系统文件等)(1)从集合元素创建RDD这里创建的RDD返回的是一个ParallelCollectionRDD类型的对象,代表“并行化的集合”,可以跨机器分散到不同节点上,而Python集合只能是一个整体,且只能在一台机器上存放

RDD的创建(1)从集合元素创建RDDRDD的并行能力也是通过内部的分区机制来实现的,在使用parallelize()方法创建RDD时,也可以明确指定分区的数量,若不指定则会按默认的分区数处理

RDD的创建代码中的paral

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档