当前位置:
文档之家› 10-大数据分析与内存计算-第4章
10-大数据分析与内存计算-第4章
storageLevel) } else { //直接从磁盘中读取 或 从 检查点中读取 computeOrReadCheckpoint(split, context) }
RDD的五个主要属性
分区信息 (Partition)
• 数据集的基 本组成单位
Compute
函数
• 对于给定的 数据集,需 要做哪些计 算
RDD简介 01
RDD是什么
官宣:
弹性分布式数据集
RDD是只读的、分区记录的集合
RDD只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作 来创建
RDD是什么--需要清楚的几个问题
1.什么是弹性?
1. RDD可以在内存和磁盘之间手动或自动切换 2. RDD可以通过转换成为其他的RDD 3. RDD可以存储任意类型的数据
谢谢观看
• parallelize函数可以传入分片个数参数,否则采用defaultParallelism。
• count函数返回RDD中元素的个数
RDD操作
算子 (Operation)
转换(transformantion) 行动(action)
在一个已存在的 RDD上创建一 个新的 RDD,但实际的计算并 没有执行,仅仅记录操作过程
大数据分析与内存计算 第四章
Spark RDD
课前回顾 使用Python开发Spark应用
(1)Python编程语言 (2)PySpark启动与日志设置 (3)Pyspark开发包的安装
(4) 使用开发工具Pycharm编写Spark应用
RDD简介
01
Hale Waihona Puke RDD算子02共享变量
03
CONTENT
04 RDD依赖关 系 05 RDD持久化
RDD是什么--需要清楚的几个问题 2. 存储的内容是什么?是数据么?
初代RDD:存储的的只是真实数据的分区信息,还有就是针对 单个分区的读取方法 ,血统的顶层
子代RDD:存储初代RDD到底干了什么才会产生自己,还有就 是初代RDD的引用,血统的下层
RDD是什么--需要清楚的几个问题
3.数据读取发生在什么时候
Partitioner
函数
• 对于计算出 来的数据结 果如何分发
优先位置列 表
• 对于data partition的 位置偏好
依赖关系
• RDD的依赖 关系,描述 了RDD之间 的Lineage
创建RDD 基于外部数据源创建
distFile = sc.textFile("file:///home/camel/Repos/spark/README.md") distFile.count()
发生在运行的Task中,即数据是在任务分发的executor上运行 的时候读取的
if (storageLevel != StorageLevel.NONE) { //先判断是否有缓存 ,有则直接从缓存中取 , 没有就从磁盘中取出来, 然后
再执行缓存操作 SparkEnv.get.cacheManager.getOrCompute(this, split, context,
• distFile是一个RDD,该RDD是从本地文件创建的。 • textFile函数支持从多种源创建RDD,如hdfs://,s3n:// 。 • count函数在这里会计算文本的行数。
创建RDD 基于数据集合创建
data = [1, 2, 3, 4, 5] distData = sc.parallelize(data) #通过并行化创建RDD distData.count() • distData是一个RDD,该RDD是从已存在的集合创建的。
执行 RDD记录的所有运行 transformations操作,并计算 结果,结果可返回到 driver程 序
RDD操作
如何区分两种算子:
transformation算子一定会返回一个rdd Action有的没返回值,也可能有返回值,但是一定不是rdd
小节
01
RDD的创建
03
RDD是什么
02
RDD操作