[Spark RDD_1] RDD 基本概念
0. 说明
RDD 概述 && 创建 RDD 的方式 && RDD 编程 API(Transformation 和 Action Operations) && RDD 的依赖关系
1. RDD 概述
Spark 围绕弹性分布式数据集(RDD)的概念展开,RDD 是可以并行操作的容错的容错集合。
resilient distributed dataset,弹性分布式数据集。
不可变集合,可以进行并行操作的分区化数据集合。
该类包含了 RDD 常见操作,比如 map、filter、persist 等。
对于 key-value 的 RDD,会自动转换成(隐式转换)PairRDDFunction,该类提供了所有的 ByKey 操作。
内部,每个 RDD 主要含有 5 个主要属性:
- 分区列表(轻量级数据集合,没有实际数据)
- 计算每个切片的计算函数
- 和其他RDD的依赖列表
- 针对 K-V 类型 RDD,还有一个分区类(可选)
- 计算每个切片的首选位置列表(可选)
2. 创建 RDD 的方式
创建 RDD 有两种方法
【方法一】
并行化 驱动程序中的现有集合。
例子如下
【方法二】
引用外部存储系统中的数据集,例如共享文件系统,HDFS,HBase 或提供 Hadoop InputFormat 的任何数据源。
textFile() 方法最初创建的是 HadoopRDD,HadoopRDD 提供了读取 HDFS 文件核心功能。
sc.textFile()
产生了两个 RDD
HadoopRDD -> MapPartitionRDD
3. RDD 编程 API(Transformation 和 Action Operations)
【变换 Transformation】
返回值为新的 RDD
map
flatMap
filter()
reduceByKey()
【动作 Actions】
返回值为具体的值
collect()
save()
reduce()
count()
4. RDD 的依赖关系
【依赖】
RDD 的依赖是 子 RDD 上的每个分区和父 RDD 分区数量上的对应关系
Dependency
|----ShuffleDependency (宽依赖)
|----NarrowDependency (窄依赖:子 RDD 的每个分区依赖少量的父 RDD 分区)
|-----One2OneDependency (一对一依赖)
|-----RangeDependency(范围依赖)
|-----PruneDependency(Prune 依赖)
【说明】
构造 RDD 时使用的是 One2OneDependency
[Spark RDD_1] RDD 基本概念的更多相关文章
- 【原】Learning Spark (Python版) 学习笔记(一)----RDD 基本概念与命令
<Learning Spark>这本书算是Spark入门的必读书了,中文版是<Spark快速大数据分析>,不过豆瓣书评很有意思的是,英文原版评分7.4,评论都说入门而已深入不足 ...
- Learning Spark (Python版) 学习笔记(一)----RDD 基本概念与命令
<Learning Spark>这本书算是Spark入门的必读书了,中文版是<Spark快速大数据分析>,不过豆瓣书评很有意思的是,英文原版评分7.4,评论都说入门而已深入不足 ...
- Spark RDD基本概念与基本用法
1. 什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合.RDD具 ...
- 关于Spark中RDD的设计的一些分析
RDD, Resilient Distributed Dataset,弹性分布式数据集, 是Spark的核心概念. 对于RDD的原理性的知识,可以参阅Resilient Distributed Dat ...
- Spark中的一些概念
最近工作用到Spark,这里记一些自己接触到的Spark基本概念和知识. 本文链接:https://www.cnblogs.com/hhelibeb/p/10288915.html 名词 RDD:在高 ...
- spark中RDD的转化操作和行动操作
本文主要是讲解spark里RDD的基础操作.RDD是spark特有的数据模型,谈到RDD就会提到什么弹性分布式数据集,什么有向无环图,本文暂时不去展开这些高深概念,在阅读本文时候,大家可以就把RDD当 ...
- Spark集群基础概念 与 spark架构原理
一.Spark集群基础概念 将DAG划分为多个stage阶段,遵循以下原则: 1.将尽可能多的窄依赖关系的RDD划为同一个stage阶段. 2.当遇到shuffle操作,就意味着上一个stage阶段结 ...
- 大话Spark(1)-Spark概述与核心概念
说到Spark就不得不提MapReduce/Hadoop, 当前越来越多的公司已经把大数据计算引擎从MapReduce升级到了Spark. 至于原因当然是MapReduce的一些局限性了, 我们一起先 ...
- Spark之RDD的定义及五大特性
RDD是分布式内存的一个抽象概念,是一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,能横跨集群所有节点并行计算,是一种基于工作集的应用抽象. RDD底层存储原理:其数据分布存储于多台机器上 ...
随机推荐
- 关于LVS+Nginx为什么会被同时使用的思考
最初的理解 (也可以每个nginx都挂在上所有的应用服务器) nginx大家都在用,估计也很熟悉了,在做负载均衡时很好用,安装简单.配置简单.相关材料也特别多. lvs是国内的章文嵩博士的大作,比ng ...
- 并发编程之 AQS 源码剖析
前言 JDK 1.5 的 java.util.concurrent.locks 包中都是锁,其中有一个抽象类 AbstractQueuedSynchronizer (抽象队列同步器),也就是 AQS, ...
- ASP.NET MVC标记最新的发布新闻或文章
开发的网站中,一些文章列表或新闻列表,需要在标题前放置一个小new.gif小图,标记为是最新的新闻或是文章.今天Insus.NET的练习,就是在asp.net mvc的应用程序中实现这样功能.计划使用 ...
- 手机调试 --- 通过chrome测试手机网站
移动端有时候我们要调试手机网站. Chrome怎么调试手机页面呢? 毕竟有时候手机支持的JS度跟PC不一样.最开始就遇见了.手机端浏览器不支持执行string.includes. PC端支持该函数, ...
- 使用VS2013 + EF6 连接Mysql数据库
使用VS2013 + EF6 + .NET4.5 连接Mysql数据库 1.安装插件 在使用Visual Studio 2013添加ADO.NET实体数据模型新建连接时,默认是没有Mysql选项的.此 ...
- php扩展php-redis安装与使用
一.redis的安装 1,安装redis版本 下载页面:https://redis.io/download 安装一个老版本3.2.11:http://download.redis.io/release ...
- CentOS 7环境下Pycharm安装流程记录
1.准备安装文件: 方法1: 使用内置火狐浏览器访问下载最新格式为tar.gz的压缩包 网址:https://www.jetbrains.com/pycharm/download/previous.h ...
- zookeeper3.4.5+Hbase1.2.6安装教程
说明:在安装zookeeper+Hbase之前,我们应该已经将hadoop集群搭建好了(三个节点),并且验证启动成功.因为HBase是一种构建在HDFS之上的分布式.面向列的存储系*统. zookee ...
- python学习之老男孩python全栈第九期_day011知识点总结
# 装饰器的形成的过程:最简单的装饰器:有返回值的:有一个参数的:万能参数# 装饰器的作用# 原则:开放封闭原则# 语法糖# 装饰器的固定模式:# def wrapper(f): # 装饰器函数,f是 ...
- vue实现倒计时的插件 时间戳 刷新 跳转 都不影响
工作当中需要开发一个倒计时插件,于是开始网上先拿来主义,发现好多倒计时的插件,刷新都会变成从头再来,于是自己用vue2.0写了一个插件,测试已经通过,直接上代码 如下是组件代码: <templa ...