【大数据】【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

【python】import pandas as pd用法

是 Python 里最常用的数据分析库之一。 的意思是:导入 pandas 库,并给它起个别名 。这样用起来更简洁: 下面总结 pandas 的常见用法(配例子)。目录🔹 1. 数据结构(1) Series(一维数据,类似于数组 + 标签)(2) DataFrame(二维数据表,类似于 Excel 表格)🔹 2. 数据读写🔹 3. 数据查看🔹 4. 数据选择与索引🔹 5. 数据清洗🔹 6. 数据运算🔹 7. 数据筛选(布尔索引)🔹 8. 分组与聚合🔹 9. 排序 Pandas 常用方

2401_86285609的博客 1531

Jetson Orin边缘语音AI实战:用Riva ASR/TTS + Llama 2打造离线智能语音助手

本文详细介绍了如何利用NVIDIA Jetson Orin的边缘计算能力,结合Riva ASR/TTS语音引擎和Llama 2大语言模型,构建完全离线的智能语音助手。通过硬件优化、量化部署和性能调优,实现在网络不稳定环境下的高效语音交互,适用于智能家居、车载系统等场景。

weixin_29053383的博客 242

Spark 核心编程之 RDD 介绍

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

weixin_44480009的博客 971

stc8g1k08硬件iic读取aht20温湿度及0.91寸oled显示

使用stc8g1k08读取aht20温湿度及0.91寸oled显示。

qq_61688416的博客 2770

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

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

Stray_Lambs的博客 1446

3DMax马克杯制作教程

01 在前视图创建一个【圆柱体】,设置参数,长度为32,高度为82;高度分段12、边数为16;如图所示。 02 点击鼠标右键,把圆柱体转换为可编辑多边形,如图所示。 03 在修改面板中,选择【多边形】层级,在视图中选择所示的面,使用缩放工具稍微缩小一点,如图所示。 04 点击【插入设置】,如图所示。 设置插入数量为2.5mm。 05 点击【挤出设置】,如图所示。 ...

youximoxingEDO的博客 3478

史上最详细的sqlmap使用教程

sqlmapsqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等Sqlmap采用了以下5种独特的SQL注入技术基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。

大河之犬的博客 5万+

Spark 核心编程RDD

RDD主要知识点

zhongmingyu 1082

X电容与Y电容,看这一篇就够了

本文详细介绍了X电容与Y电容的定义、作用、位置、分类,以及它们在实际应用中的容值选取和计算方法。通过汽车电子应用和X电容放电电路的实例,帮助读者深入理解这两种安规电容的重要性。文章还探讨了电容放电电阻的计算,确保符合安全规范。

让你爱上电路设计 7015

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

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

five小点心的博客 3290

管好 SAP Fiori Launchpad Content:技术目录、业务目录与 KPI 工具的完整治理思路

SAP Fiori Launchpad 作为企业级统一入口,需通过技术目录(源对象)和业务目录(引用编排)分层治理。技术目录由 Launchpad App Manager 维护,负责应用描述对象(Tile 和 Target Mapping)的创建与管理;业务目录由 Launchpad Content Manager 编排,通过引用技术目录对象实现灵活配置。分析型内容则通过 F2814 统一管理。这种分层设计支持应用复用,便于升级维护,是 SAP S/4HANA 项目中实现高效内容治理的关键。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 130

Unity接入抖音小程序侧边栏

Unity接入抖音小程序侧边栏功能实践总结 本文分享了Unity游戏接入抖音小程序侧边栏复访功能的实现过程。针对官方文档不清晰的问题,作者详细介绍了关键实现步骤:通过TT.CheckScene检测侧边栏可用性,利用OnShow事件监听判断用户是否从侧边栏进入,并提供了完整的UI交互代码示例。重点功能包括:检测宿主版本支持、区分侧边栏入口与非侧边栏入口的界面展示、实现跳转侧边栏场景等。文中附有官方文档链接和效果截图,为开发者提供了实用的接入参考方案。

类人_猿的博客 613

Spark核心编程RDD

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

weixin_42232931的博客 2203

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Spark RDD算子【大数据 Spark】

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

sui_feng_piao_guo的博客 3865

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

大数据学习 之 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、付费专栏及课程。

余额充值