文章目录

  • 1.RDD的概念
  • 2.核心属性
  • 3.执行原理
  • 4.RDD创建

1.RDD的概念

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。

➢ 弹性

  • 存储的弹性:内存与磁盘的自动切换;

  • 容错的弹性:数据丢失可以自动恢复;

  • 计算的弹性:计算出错重试机制;

  • 分片的弹性:可根据需要重新分片。

➢ 分布式:数据存储在大数据集群不同节点上

➢ 数据集:RDD 封装了计算逻辑,并不保存数据

➢ 数据抽象:RDD 是一个抽象类,需要子类具体实现

➢ 不可变:RDD 封装了计算逻辑,是不可以改变的,想要改变,只能产生新的 RDD,在新的 RDD 里面封装计算逻辑

➢ 可分区、并行计算

2.核心属性

➢ 分区列表
RDD 数据结构中存在分区列表,用于执行任务时并行计算,是实现分布式计算的重要属性。

➢ 分区计算函数
Spark 在计算时,是使用分区函数对每一个分区进行计算

➢ RDD 之间的依赖关系
RDD 是计算模型的封装,当需求中需要将多个计算模型进行组合时,就需要将多个 RDD 建立依赖关系

➢ 分区器(可选)
当数据为 KV 类型数据时,可以通过设定分区器自定义数据的分区

➢ 首选位置(可选)
计算数据时,可以根据计算节点的状态选择不同的节点位置进行计算

3.执行原理

从计算的角度来讲,数据处理过程中需要计算资源(内存 & CPU)和计算模型(逻辑)。执行时,需要将计算资源和计算模型进行协调和整合。

Spark 框架在执行时,先申请资源,然后将应用程序的数据处理逻辑分解成一个一个的计算任务。然后将任务发到已经分配资源的计算节点上, 按照指定的计算模型进行数据计算。最后得到计算结果。
RDD 是 Spark 框架中用于数据处理的核心模型,在 Yarn 环境中,RDD的工作原理如下所示:
1)启动 Yarn 集群环境
2)Spark 通过申请资源创建调度节点和计算节点
3)Spark 框架根据需求将计算逻辑根据分区划分成不同的任务
4)调度节点将任务根据计算节点状态发送到对应的计算节点进行计算

4.RDD创建

在 Spark 中创建 RDD 的创建方式可以分为四种:

1)从集合(内存)中创建RDD

从集合中创建 RDD,Spark 主要提供了两个方法:parallelize 和 makeRDD

val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Application")
val sparkContext = new SparkContext(sparkConf)
val rdd1 = sparkContext.parallelize(List(1,2,3,4)
)
val rdd2 = sparkContext.makeRDD(List(1,2,3,4)
)
rdd1.collect().foreach(println)
rdd2.collect().foreach(println)
sparkContext.stop()

从底层代码实现来讲,makeRDD 方法其实就是 parallelize 方法

2)从外部存储(文件)创建RDD

由外部存储系统的数据集创建 RDD 包括:本地的文件系统,所有 Hadoop 支持的数据集,比如 HDFS、HBase等。

val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Application")
val sparkContext = new SparkContext(sparkConf)
val fileRDD: RDD[String] = sparkContext.textFile("inputFile")
fileRDD.collect().foreach(println)
sparkContext.stop()

3)从其他RDD创建

主要是通过一个 RDD 运算完后,再产生新的 RDD。

4)直接创建RDD(new)

使用 new 的方式直接构造 RDD,一般由 Spark 框架自身使用。

【大数据】【Spark】Spark核心编程(一)RDD概述相关推荐

  1. 尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程,map、mapPartitions、mapPartitionsWithIndex、flatMap、glom、groupBy)】

    视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...

  2. 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

    视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...

  3. 尚硅谷大数据技术Spark教程-笔记09【SparkStreaming(概念、入门、DStream入门、案例实操、总结)】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表[课程资料下载] 视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[SparkCore ...

  4. Spark SQL 核心编程

    文章目录 Spark SQL 核心编程 1.新的起点 2.SQL 语法 1) 读取 json 文件创建 DataFrame 2) 对 DataFrame 创建一个临时表 3) 通过SQL语句实现查询全 ...

  5. 大数据课程——Spark SQL

    大数据课程--Spark SQL   实验内容以及要求 现有一份汽车销售记录(文件名:Cars.csv),销售记录包括时间.地点.邮政编码.车辆类型等信息,每条记录信息包含39项数据项.按步骤完成如下 ...

  6. 大数据篇--Spark常见面试题总结一

    文章目录 一.Spark 概念.模块 1.相关概念: 2.基本模块: 二.Spark作业提交流程是怎么样的 三.Spark on YARN两种方式的区别以及工作流程 1.Yarn组件简介: 2.Spa ...

  7. 大数据之Spark案例实操完整使用(第六章)

    大数据之Spark案例实操完整使用 一.案例一 1.准备数据 2.需求 1:Top10 热门品类 3.需求说明 方案一. 实现方案二 实现方案三 二 .需求实现 1.需求 2:Top10 热门品类中每 ...

  8. 大数据之spark学习记录二: Spark的安装与上手

    大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...

  9. 大数据解决的核心问题

    大数据解决的核心问题: 海量数据的存储: 底层硬件存储 数据库存储层 海量数据的计算: 计算向数据移动 Java学习 Java EE Hibernate或Mybites的原理,不要只学API,这样可以 ...

  10. 数据挖掘:大数据发展的核心驱动力

    近年来,随着"大数据成为热门词汇,金融业在这一领域不断进行研究和探索.就金融业和大数据相关问题,本报记者近日专访中国民生银行发展规划资深 专家王彦博.王彦博认为,数据挖掘是大数据发展的核心驱 ...

最新文章

  1. java 加解密api_API加密框架原理解密
  2. C语言 将程序运行的时间记录在记事本中,下次运行进行读取
  3. 谷歌开源 tf-seq2seq,你也能用谷歌翻译的框架训练模型
  4. MySQL中如何创建表与删除表
  5. NET Core的代码安全分析工具 - Security Code Scan
  6. 解决bash: mysql: command not found 的方法【linux mysql命令 】
  7. 谁来拯救存量SGX1平台?又一个内核特性合并的血泪史
  8. opencv源码查看
  9. 火星文字充斥网络 网友怒骂其侮辱汉字
  10. C# 委托与事件总结
  11. 《C语言及程序设计》实践项目——指针及其运算
  12. fgets 和gets_C编程中的fgets()和gets()
  13. 设计模式--工厂模式(简单总结)
  14. AndroidStudio编译引入JsonObject
  15. C语言经典100道编程练习题
  16. 【汉化】使用gettext和poedit对xibo-mo文件进行汉化编辑
  17. 用计算机怎么管理小米路由器,如何为小米路由器设置局域网
  18. 追风筝的人 第十二章
  19. 使用树莓派连接LED灯
  20. 完整的SEO团队应该包括哪些人员(细分八要职)

热门文章

  1. SecureCRT终端显示中文乱码问题的解决方案
  2. 计算机网络第六章复习笔记(JLU复习版)
  3. 优维科技入选“投资家网2022年企业服务领域创新企业Top30”榜单
  4. 单相逆变电源软件设计
  5. 摒弃盗版,让我们拥有正版,给你最实用的软件。有效的优化
  6. mysql主从遇故障自动切换_mysql主宕机,主从故障切换(一主多从)
  7. 《Real-Time Rendering 4th Edition》全文翻译 - 第15章 非真实感渲染(上)15.1 ~ 15.2
  8. 泡泡堂联机对战-Java网络编程
  9. EasyExcel实现Excel解析并返回解析失败数据思路
  10. linux不识别指纹仪,Ubuntu t43指纹仪安装