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

Spark中Key-Value类型|partitionBy()按照Key重新分区|reduceByKey()按照K聚合V|groupByKey()按照K重新分组 代码实现 Shuffle过程(落盘) 需要把所有哦分区的数据拿到一起处理,会有shuffle 自定义分区器 源码分析 class HashPartitioner(partitions: Int) extends Partitioner { require(partitions >= 0, s"Number of partitions ($partitions) canno... 阅读详情

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 2》--Maven搭建Spark应用程序、创建RDD时分区个数(部分源码解析)、RDD的说明、RDD分区的首选位置、依赖关系 1.构建独立应用,采用Maven搭建Spark应用程序: a. 1.新建spark的project项目构建maven项目 2.本地仓库seting修改 右边compile (每次创建 项目本地仓库都需要修改) 3.File -->Project Structure..选择+ -->lib 选scala -->Dep... 阅读详情

相关推荐

Spark之RDD(弹性分布式数据集) 详解

1.RDD简述 RDD简单的解释: RDD是将数据项拆分为多个分区的集合,存储在集群的工作节点上的内存和磁盘中,并执行正确的操作。 复杂的解释: RDD是用于数据转换的接口,如map算子、filter算子; RDD指向了存储在HDFS、Cassandra、 HBase等、 或缓存 (内存、内存+磁盘、仅磁盘等),或在故障或缓存收回时重新计算其他RDD分区中的数据 RDD(Resilient Distributed Dataset):弹性分布式数据集,Spark计算的基石,为用户屏蔽了底层对数据的复杂抽象和处

zp17834994071的博客 4846

spark按照key分区:partitionBy

说明 RDD中的元素按照key指定的分区规则进行分区。 RDD中的元素必须是键值对类型。 如果原有的partitionRDD和现有的partitionRDD一致的话就不进行分区,否则会发生shuffle。 函数签名 代码示例(默认分区器) val conf: SparkConf = new SparkConf().setAppName(this.getClass.getName).setMaster("local[*]") val sc = new SparkContext(conf)

FlatTiger的博客 2554

大数据——Spark RDD常用算子总结

Spark的核心是建立在同一的抽象弹性分布式数据集(Resilient Distributed Datasets,RDD)之上的,这使得Spark的各个组件可以无缝的进行集成,能够在同一个应用程序中完成大数据处理 1.RDD基本概念 RDD是spark提供的最重要的抽象概念,它是一种有容错机制的特殊数据集合,可以分布在集群的节点上,以函数式操作集合的方式进行各种并行操作 可以将RDD理解为一个分布式对象集合,本质上是一个只读的分区记录集合。每个RDD可以分成多个分区,每个分区就是一个数据集片段。一个R

Vicky_Tang 1万+

SparkCore(二):RDD基础

RDD简介、核心属性、执行原理、RDD创建的介绍

学习记录和总结 642

Spark大数据 掌握RDD的创建

在Spark中,RDD是数据处理的核心数据结构。掌握RDD的创建方式以及理解其特性对于高效地使用Spark进行大数据处理至关重要。从集合、外部数据源、其他RDD转换以及自定义方式创建RDD,都是常见的RDD创建方法。同时,理解分区和分区数、缓存等概念,可以帮助我们更好地优化Spark作业的性能。

IT深耕十余载,大道之简 1395

第14章:Spark核心与RDD

Apache Spark是一个快速、通用的分布式计算引擎,解决了MapReduce的性能瓶颈。其核心特点包括:内存计算带来100倍以上速度提升、统一引擎支持批处理/流处理/机器学习等多种计算范式、多语言API易用性、支持多种集群模式。Spark生态系统包含Spark Core(基础引擎)、Spark SQL(结构化数据处理)、Structured Streaming(流处理)、MLlib(机器学习)和GraphX(图计算)等组件。核心数据抽象RDD具有弹性、分布式、不可变等特性,支持转换(惰性求值)和行动(

909

Spark综合大作业:RDD编程初级实践

Spark综合大作业:RDD编程初级实践 实验配置:操作系统:Ubuntu16.04 | 环境:Spark版本:2.4.0 | 软件:Python版本:3.4.3。 文章目录一、实验目的二、实验平台三、实验内容和要求1、pyspark交互式编程2、编写独立应用程序实现数据去重3、编写独立应用程序实现求平均值问题四、经验总结五、参考文献 一、实验目的 (1)熟悉Spark的RDD基本操作及键值对操作; (2)熟悉使用RDD编程解决实际具体问题的方法。 二、实验平台 本次大作业的实验是操作系统:Ubuntu1

weixin_48338701的博客 1万+

大数据学习之Spark——04RDD概述及创建

一. RDD概述 1. 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。 2. RDD的五大特性 RDD是由一系列partition组成 算子(函数)是作用在RDD的partition上的 RDD之间有依赖关系 分区器是作用在k, v格式的RDD上 partition提供数据计算的最佳位置, 利于数据处理的本地化. “计算移动, 数据不移动”

bingque6535的博客 390

【大数据】计算引擎:Spark核心概念

十分钟,一文讲明白复杂抽象的Spark核心概念。

BugMan的博客 4911

echarts如何实现3D饼图(环形图)?

自定义修改3D饼图的宽高和legend

i-cat的博客 1万+

【UOJ170】Picks loves segment tree VIII

【题目链接】 点击打开链接 【前置阅读】 【BZOJ4695】最假女选手 【BZOJ3064】【TYVJ1518】CPU监控【UOJ169】【UR #11】元旦老人与数列 【思路要点】 前置阅读中的前两题中,我们分别对线段树的区间取最大/最小值和线段树的历史最大/最小值进行了研究。本题中,两类问题同时出现,因此我们

cz_xuyixuan的博客 1246

Spark 核心编程之 RDD 介绍

Resilient Distributed Dataset,简称 RDD,弹性分布式数据集。

weixin_44480009的博客 971

睿尔曼超轻量仿人机械臂--医疗工作站运行Demo(Python)

开发环境系统:win10Python版本:python 3.11.2由于机械臂相关软件版本不定期更新,如果你使用的软件接口或协议与本文有出入,请联系官方技术人员及时更新。

realman_Rop的博客 1091

Spark核心编程系列(一)——RDD详解

Spark核心编程系列——RDD详解(一) RDD概念

Stray_Lambs的博客 1446

CANoe数据回放实战:如何用Replay Block精准复现实车故障(附ECU数据处理技巧)

本文深入探讨了利用CANoe的Replay Block功能进行数据回放,以精准复现实车偶发性故障的实战方法。文章重点解析了从原始OBD日志中移除目标ECU数据、转换报文方向等核心数据处理技巧,旨在帮助工程师重构真实的网络测试环境,从而高效定位并解决复杂的ECU问题。

nnn11的博客 495

Oracle GoldenGate (OGG) 实战:从安装到故障排查的完整避坑指南

本文提供了一份详尽的Oracle GoldenGate实战指南,涵盖从环境准备、核心进程配置到性能调优与故障排查的全过程。重点解析了OGG安装与部署中的常见陷阱,并分享了确保数据同步链路稳定运行的高级运维技巧与常见故障处理方法,帮助技术人员高效避坑。

weixin_29230649的博客 380

Spark 核心编程RDD

RDD主要知识点

zhongmingyu 1081

超分算法 SwinIR: Image Restoration Using Swin Transformer

这篇文章结构比较简单,如果看过Swin-Transformer的话就没什么难点了。作者引入Swin-T结构应用于低级视觉任务,包括图像超分辨率重建、图像去噪、图像压缩伪影去除。网络由一个浅层特征提取模块、深层特征提取模块、重建模块构成。重建模块对不同的任务使用不同的结构。浅层特征提取就是一个3×3的卷积层。深层特征提取是k个RSTB块和一个卷积层构成。RSTB(Res- SwinIR: Image Restoration Using Swin Transformer[ICCV 2021]Abstract1.

qq_45122568的博客 1万+

大数据技术之Spark(一)——Spark概述

Apache Spark是一个开源的、强大的分布式查询和处理引擎,它提供MapReduce的灵活性和可扩展性,但速度明显要快上很多;拿数据存储在内存中的时候来说,它比Apache Hadoop 快100倍,访问磁盘时也要快上10倍。

five小点心的博客 3290

【AirPlay】苹果认证MFI学习

配件认证是一个过程,通过这个过程,可验证其配件符合MFi技术规范,并通过苹果指定的任何认证测试。MFi门户中的产品计划 "认证 "页面将指导你完成特定配件所需的认证步骤,并指出何时完成所有要求。在完成所有MFi认证要求之前,你不得制造、分发或销售任何配件。在开始MFi认证过程之前,你必须测试你的配件,以确保它符合最新的MFi技术规范,通过产品计划 "测试计划 "上的所有适用测试,并与它将声称具有兼容性的每个苹果设备兼容。

天天的博客 2275

★教程1:matlab学习教程入门100例目录

★基础入门 1.为什么要学习MATLAB 2.MATLAB安装 持续更新....... ★MATLAB基础编程语言熟悉

FPGA/MATLAB学习教程/源码/项目合作开发 4万+

Spark核心编程RDD

一.RDD概述 1.1.什么是RDD ​ RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 ➢ 弹性 ⚫ 存储的弹性:内存与磁盘的自动切换; ⚫ 容错的弹性:数据丢失可以自动恢复; ⚫ 计算的弹性:计算出错重试机制; ⚫ 分片的弹性:可根据需要重新分片。 ➢ 分布式:数据存储在大数据集群不同节点上 ➢ 数据集:RDD 封装了计算逻辑,并不

weixin_42232931的博客 2203

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spark学习—RDD编程

RDD:弹性分布式数据集(ResilientDistributed Dataset),是Spark对数据的核心抽象。RDD其实是分布式的元素集合。当Spark对数据操作和转换时,会自动将RDD中的数据分发到集群,并将操作并行化执行。 Spark中的RDD是一个不可变的分布式对象集合。每个RDD都倍分为多个分区,这些分区运行在集群中的不同节点。RDD可以包含Python、Java、Scala中任意类型的对象,甚至可以包含用户自定义对象,本文主要通过Java实现相关示例。 Spark程序或shell会话

if(true){ I love it } 5114

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Spark RDD算子【大数据 Spark】

1. RDD是什么 RDD(Resilient Distributed DataSet), 在我们开发spark程序的时候我们可以把RDD当做一个完整的数据集来操作, 但是实际情况是我们的数据可能分布在不同的Executor进程中进行计算;所以RDD它相当于一个数据集的抽象,类似于一个代理,对代理操作他会具体的分发计算到具体的某一个计算机 Internally, each RDD is cha...

sui_feng_piao_guo的博客 3865

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大数据学习 之 Spark 概述

Spark简介 Spark 是一种由 Scala 语言开发的快速、通用、可扩展的大数据分析引擎。 Spark主要由五部分组成: Spark Core Spark Core 中提供了 Spark 最基础与最核心的功能,Spark 其他的功能如:Spark SQL, Spark Streaming,GraphX, MLlib 都是在 Spark Core 的基础上进行扩展的 Spark SQL Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL 或者

阳光大男孩!!!的博客 8487

图解大数据 | 基于Spark RDD的大数据处理分析

RDD(弹性分布式数据集合)是Spark的基本数据结构,Spark中的所有数据都是通过RDD的形式进行组织。本文讲解RDD的属性、创建方式、广播与累加器等重要知识点,并图解RDD高频算子。

ShowMeAI研究中心 1万+
上一篇: 【大数据】【Spark】Spark运行架构
下一篇: Web前端入门(十七)CSS盒子模型
Silver  Star
Silver Star 新星创作者: 大数据技术领域 新星创作者: 大数据技术领域
博客等级 码龄7年 1万+粉丝 72原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Silver Star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值