【大数据】【Spark】Spark核心编程(一)RDD概述
文章目录
- 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概述相关推荐
- 尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程,map、mapPartitions、mapPartitionsWithIndex、flatMap、glom、groupBy)】
视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...
- 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】
视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...
- 尚硅谷大数据技术Spark教程-笔记09【SparkStreaming(概念、入门、DStream入门、案例实操、总结)】
尚硅谷大数据技术-教程-学习路线-笔记汇总表[课程资料下载] 视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[SparkCore ...
- Spark SQL 核心编程
文章目录 Spark SQL 核心编程 1.新的起点 2.SQL 语法 1) 读取 json 文件创建 DataFrame 2) 对 DataFrame 创建一个临时表 3) 通过SQL语句实现查询全 ...
- 大数据课程——Spark SQL
大数据课程--Spark SQL 实验内容以及要求 现有一份汽车销售记录(文件名:Cars.csv),销售记录包括时间.地点.邮政编码.车辆类型等信息,每条记录信息包含39项数据项.按步骤完成如下 ...
- 大数据篇--Spark常见面试题总结一
文章目录 一.Spark 概念.模块 1.相关概念: 2.基本模块: 二.Spark作业提交流程是怎么样的 三.Spark on YARN两种方式的区别以及工作流程 1.Yarn组件简介: 2.Spa ...
- 大数据之Spark案例实操完整使用(第六章)
大数据之Spark案例实操完整使用 一.案例一 1.准备数据 2.需求 1:Top10 热门品类 3.需求说明 方案一. 实现方案二 实现方案三 二 .需求实现 1.需求 2:Top10 热门品类中每 ...
- 大数据之spark学习记录二: Spark的安装与上手
大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...
- 大数据解决的核心问题
大数据解决的核心问题: 海量数据的存储: 底层硬件存储 数据库存储层 海量数据的计算: 计算向数据移动 Java学习 Java EE Hibernate或Mybites的原理,不要只学API,这样可以 ...
- 数据挖掘:大数据发展的核心驱动力
近年来,随着"大数据成为热门词汇,金融业在这一领域不断进行研究和探索.就金融业和大数据相关问题,本报记者近日专访中国民生银行发展规划资深 专家王彦博.王彦博认为,数据挖掘是大数据发展的核心驱 ...
最新文章
- java 加解密api_API加密框架原理解密
- C语言 将程序运行的时间记录在记事本中,下次运行进行读取
- 谷歌开源 tf-seq2seq,你也能用谷歌翻译的框架训练模型
- MySQL中如何创建表与删除表
- NET Core的代码安全分析工具 - Security Code Scan
- 解决bash: mysql: command not found 的方法【linux mysql命令 】
- 谁来拯救存量SGX1平台?又一个内核特性合并的血泪史
- opencv源码查看
- 火星文字充斥网络 网友怒骂其侮辱汉字
- C# 委托与事件总结
- 《C语言及程序设计》实践项目——指针及其运算
- fgets 和gets_C编程中的fgets()和gets()
- 设计模式--工厂模式(简单总结)
- AndroidStudio编译引入JsonObject
- C语言经典100道编程练习题
- 【汉化】使用gettext和poedit对xibo-mo文件进行汉化编辑
- 用计算机怎么管理小米路由器,如何为小米路由器设置局域网
- 追风筝的人 第十二章
- 使用树莓派连接LED灯
- 完整的SEO团队应该包括哪些人员(细分八要职)
热门文章
- SecureCRT终端显示中文乱码问题的解决方案
- 计算机网络第六章复习笔记(JLU复习版)
- 优维科技入选“投资家网2022年企业服务领域创新企业Top30”榜单
- 单相逆变电源软件设计
- 摒弃盗版,让我们拥有正版,给你最实用的软件。有效的优化
- mysql主从遇故障自动切换_mysql主宕机,主从故障切换(一主多从)
- 《Real-Time Rendering 4th Edition》全文翻译 - 第15章 非真实感渲染(上)15.1 ~ 15.2
- 泡泡堂联机对战-Java网络编程
- EasyExcel实现Excel解析并返回解析失败数据思路
- linux不识别指纹仪,Ubuntu t43指纹仪安装