Spark-RDD详解

RDD(弹性分布式数据集)是Spark的核心概念,它是一个不可变、分区的数据集,分布在集群的内存或磁盘中。RDD具有懒计算特性,通过变换和操作执行分布式计算。可以通过cache和persist实现持久化,存储级别包括内存、磁盘和序列化等,用于提高性能和容错。在Shell中,可以进行RDD的计数和元素操作。
摘要由CSDN通过智能技术生成

什么是RDD?

  • 弹性分布式数据集分布在不同集群节点的内存中
  • 可以理解成一大数组
  • 数组的每一元素是RDD的一分区
  • RDD的每一分区是一数据块
  • 一个RDD可以分布并被运算在多台计算机节点的内存及硬盘中

RDD代表了一系列数据集合分布在机群的内存中。SPARK CORE 的任务是对这些数据进行分布式计算。

RDD特性

  1. RDD数据块可以放在磁盘上也可放在内存中(取决于设置)
  2. 如出现缓存失效或丢失,RDD的分区可以重新计算刷新
  3. RDD本身是不能被修改的
  4. 但RDD可以通过API (底层采用Scala)被变换生成新的RDD

RDD的类型

  • 并行集合(Parallelized Collections):来自于分布式化的数据对象比如PYTHON 中的list 对象.比如用户自己键入的数据
  • 文件系统数据集(如 Hadoop Datasets 或文本文件.比如通过SparkContext.textFile() 读取的数据

并行化集合是通过调用SparkContext的parallelize方法,在一个已经存在的数据集合上创建的(一个Seq对象)。集合的对象将会被拷贝,创建出一个可以被并行操作的分布式数据集

RDD的计算方式

  1. 变换(Transformations) (如:map, filter)的返回值仍然是一个RDD,Transformations操作是Lazy的,也就是说变换只是一些指令集而并不会去马上执行,需要等到有Actions操作的时候才会真正计算给出结果。Lazy Evaluation。
  2. 操作(Actions) (如:count, collect),Actions操作会返回结果或把RDD数据输出到各类系统中。Actions触发Spark启动并找到最优的计算途径。返回值是非并行化的数据集合比如 PYTHON 中的list

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值