RDD 入门_RDD 是什么|学习笔记

简介: 快速学习 RDD 入门_RDD 是什么

开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段RDD 入门_RDD 是什么】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/688/detail/11950


RDD 入门_RDD 是什么

课题引入:

对 spark 入门案例进行细节补充说明。之前课程中编写使用的 API 均为编程模型,此模型被称为 rdd ,了解 rdd 入门的过程即为之前所学算子、编程模式的解答。

若要了解 rdd 主要有两方面: rdd 的概念; rdd 的代码。

image.png


内容介绍:

一、RDD 的概念

二、RDD 的代码


一、RDD 的概念

.RDD 在哪

示例代码:

object wordcount {

def main(args:util.Arrays[String]):Unit ={

//1.创建 sparkcontext

val conf=new

sparkconf().setmaster(“local[6]”) .setappname(“word_count”)   val sc = new sparkcontext(conf)

//2.加载文件

//①准备文件

//②读取文件

val rdd1=sc.textFile(path= “dataset/wordcount.txt”)

//3.处理

//①把整句话拆分为多个单词

val rdd2=rdd1.flatmap(item=>item.split(regex= “”))

//②把每个单词指定一个词频1

val rdd3=rdd2.map(item=> (item,1))

//③聚合

val rdd4=rdd3.reduceByKey((curr,agg)=>curr+agg)

//4.得到结果

val result=rdd4.collect()println(result)

主要步骤中的 rdd1 补全类型为 val rdd1:RDD[String] 中,文件放有字符串所以为 String ,rdd2,rdd3,rdd4 补全同理。

.RDD 是什么

由此可为 RDD 下定义:

全称 resilient Distributed Datasets(弹性分布式数据集),是一个容错的,并行的数据结构,可让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。

1.rdd 是数据集:

使用 textFile api 通过路径对应的文件读取其中内容生成  rdd 即 rdd 保存该文件的数据。

2.rdd 是编程模型:

rdd1 对象的类型为 rdd 而 rdd1 可以调用 flatmap 来进行相应的算子的编写因而称它为编程模型。

rdd 相互之间存在依赖关系:

对于 rdd1 而言,它使用 flatmap 生成 rdd2 ,以此类推,它们彼此之间均存在关系。

3.rdd 是可以分区的: 

mapreduce 为一个运行的计算框架,它是并行的计算框架的原因是 mapreduce 经常访问 HDFS 的文件处理, HDFS 本身可区分,rdd 可以访问很多数据源获取数据如: HDFS;HBase;Cassandra。

对于 rdd 访问 HDFS 文件,rdd 可分区, HDFS 当中文件可区分,在 HDFS 中存有 wordcount.txt 文件,分为三个 block ,rdd 也应具备同时处理这三个 block 的能力。

首先 rdd 需进行自行的分区,

如图所示:

image.png

且在一般情况下 rdd 支持外部分区,即 HDFS 存在几个分区, rdd 相应存在等量分区。

RDD 的特点:

rdd 是数据集;rdd 是编程模型;rdd 相互之间存在依赖关系;rdd 是可以分区的。

相关文章
|
2月前
|
前端开发
前端开发 之 15个页面加载特效上【附完整源码】
本篇文章内容展示了彩球环绕加载、音乐波动加载、跷跷板加载等页面炫酷加载特效,并给出了完整的代码及注释
336 4
前端开发 之 15个页面加载特效上【附完整源码】
|
2月前
|
存储 SQL 关系型数据库
一文搞懂 MySQL 核心架构:Server 层与存储引擎全拆解
本文深入剖析MySQL核心架构,详解Server层(连接器、解析器、优化器、执行器)与存储引擎层(InnoDB内存/磁盘结构、事务ACID、MVCC、两阶段提交)的协同机制,并结合实战案例与Java代码,助开发者真正理解SQL执行全流程,高效解决慢查询、死锁、事务失效等生产问题。
577 1
|
2月前
|
人工智能 监控 数据可视化
2026年的企业级 AI 应用:工作流的边界,与 Coding 的回归
2026年,企业级AI应用进入新分水岭:工作流解决启动快,代码承载长期复杂性。Dify、n8n等平台正补工程能力,LangGraph等框架则增强编排性。核心命题已非“二选一”,而是——**Workflow管编排,Code管核心**:低风险场景用可视化,高可靠需求回归代码优先。(239字)
653 6
|
4月前
|
人工智能 JavaScript 前端开发
抛弃 Zapier?当 AI 接管业务流程,为什么 n8n 成了企业的“新基建”?
n8n为何成为企业级AI自动化首选:以工作流为载体,兼具代码灵活性与数据私密性,支持复杂逻辑编排,助力AI安全融入核心业务。
322 2
|
机器学习/深度学习 数据采集 自然语言处理
深度学习实践技巧:提升模型性能的详尽指南
深度学习模型在图像分类、自然语言处理、时间序列分析等多个领域都表现出了卓越的性能,但在实际应用中,为了使模型达到最佳效果,常规的标准流程往往不足。本文提供了多种深度学习实践技巧,包括数据预处理、模型设计优化、训练策略和评价与调参等方面的详细操作和代码示例,希望能够为应用实战提供有效的指导和支持。
|
9月前
|
Java 应用服务中间件 开发者
Spring Boot 技术详解与应用实践
本文档旨在全面介绍 Spring Boot 这一广泛应用于现代企业级应用开发的框架。内容将涵盖 Spring Boot 的核心概念、核心特性、项目自动生成与结构解析、基础功能实现(如 RESTful API、数据访问)、配置管理以及最终的构建与部署。通过本文档,读者将能够理解 Spring Boot 如何简化 Spring 应用的初始搭建和开发过程,并掌握其基本使用方法。
670 2
|
SQL 数据可视化 BI
VeryReport和FineReport两款报表软件深度分析对比
VeryReport和FineReport两款报表软件深度分析对比
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
589 9
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
关系型数据库 MySQL API
新手教程:数据库操作(使用PDO或MySQLi扩展)
本文为新手介绍如何使用PDO和MySQLi扩展连接与操作MySQL数据库。PDO更现代灵活,支持多种数据库,适合大多数应用;MySQLi提供面向过程和面向对象两种API,适合直接控制数据库操作。教程涵盖安装配置、创建连接、执行查询(查询、插入、更新、删除)及错误处理等内容。希望这篇教程能帮助你快速上手PHP中的数据库操作!
423 32
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。

热门文章

最新文章