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 是可以分区的。

相关文章
|
机器学习/深度学习 算法 Python
LightGBM中的特征选择与重要性评估
LightGBM中的特征选择与重要性评估【2月更文挑战第1天】
2657 0
|
API
Istio 使用ingress和gateway两种方式公开服务
本文档指导您完成Istio网关的部署与配置。首先安装`istiod`(步骤略过)。接着,创建`ingress.yaml`文件,定义Istio入口网关的服务、部署及权限设置,通过`kubectl apply -f ingress.yaml`命令应用。最后,创建Ingress资源,指定主机名、后端服务及TLS配置,实现对外部请求的路由管理。
1057 1
|
Web App开发 移动开发 安全
WordPress插件wp-file-manager任意文件上传漏洞(CVE-2020-25213)
WordPress插件WPFileManager中存在一个严重的安全漏洞,攻击者可以在安装了此插件的任何WordPress网站上任意上传文件并远程代码执行。
2534 1
|
XML 搜索推荐 API
通义千问API:让大模型使用各种工具
本章我们将通过一个简单的例子,揭示基于LangChain的Agent开发的秘密,从而了解如何扩展大模型的能力。
通义千问API:让大模型使用各种工具
|
Linux Windows
Windows系统批量创建文件夹的技巧
Windows系统批量创建文件夹的技巧
480 1
|
数据采集 SQL 监控
大数据清洗的艺术:有效处理缺失值、异常值与重复数据
【4月更文挑战第8天】本文探讨了大数据清洗的三个关键环节:缺失值处理、异常值识别与处理、重复数据消除。在处理缺失值时,涉及识别、理解原因、选择删除、填充或保留策略,并进行结果验证。异常值识别包括统计方法、业务规则和可视化检查,处理策略包括删除、修正和标记。重复数据的识别基于主键和关键属性,处理策略有删除、合并和哈希,处理后需持续监控。数据清洗是一门艺术,需要结合统计学、编程技能和业务理解。
3778 2
|
容器
LabVIEW弹窗实现
进行LabVIEW项目开发时,有时候前面板需要显示的位置空间有限,而一些参数设置的界面其实可以不显示在主界面上,而通过弹窗的原理只有在需要设置参数时可以将参数设置界面弹出而设置参数,这样给主界面预留了很大的空间。 本文通过分隔栏和栅格实现LabVIEW弹窗
655 0
|
SQL Oracle 关系型数据库
SQL学习之使用order by 按照指定顺序排序或自定义顺序排序
我们通常需要根据客户需求对于查询出来的结果给客户提供自定义的排序方式,那么我们通常sql需要实现方式都有哪些,参考更多资料总结如下(不完善的和错误望大家指出): 一、如果我们只是对于在某个程序中的应用是需要按照如下的方式排序,我们只需在SQL语句级别设置排序方式:
1366 0
|
Python
numpy重新学习系列(10)---如何用np.arange生成均匀间隔分布的array
numpy重新学习系列(10)---如何用np.arange生成均匀间隔分布的array
249 0
|
存储 算法 大数据