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 个主要属性:

  1. 分区列表(轻量级数据集合,没有实际数据)
  2. 计算每个切片的计算函数
  3. 和其他RDD的依赖列表
  4. 针对 K-V 类型 RDD,还有一个分区类(可选)
  5. 计算每个切片的首选位置列表(可选)

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 基本概念的更多相关文章

  1. 【原】Learning Spark (Python版) 学习笔记(一)----RDD 基本概念与命令

    <Learning Spark>这本书算是Spark入门的必读书了,中文版是<Spark快速大数据分析>,不过豆瓣书评很有意思的是,英文原版评分7.4,评论都说入门而已深入不足 ...

  2. Learning Spark (Python版) 学习笔记(一)----RDD 基本概念与命令

    <Learning Spark>这本书算是Spark入门的必读书了,中文版是<Spark快速大数据分析>,不过豆瓣书评很有意思的是,英文原版评分7.4,评论都说入门而已深入不足 ...

  3. Spark RDD基本概念与基本用法

    1. 什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合.RDD具 ...

  4. 关于Spark中RDD的设计的一些分析

    RDD, Resilient Distributed Dataset,弹性分布式数据集, 是Spark的核心概念. 对于RDD的原理性的知识,可以参阅Resilient Distributed Dat ...

  5. Spark中的一些概念

    最近工作用到Spark,这里记一些自己接触到的Spark基本概念和知识. 本文链接:https://www.cnblogs.com/hhelibeb/p/10288915.html 名词 RDD:在高 ...

  6. spark中RDD的转化操作和行动操作

    本文主要是讲解spark里RDD的基础操作.RDD是spark特有的数据模型,谈到RDD就会提到什么弹性分布式数据集,什么有向无环图,本文暂时不去展开这些高深概念,在阅读本文时候,大家可以就把RDD当 ...

  7. Spark集群基础概念 与 spark架构原理

    一.Spark集群基础概念 将DAG划分为多个stage阶段,遵循以下原则: 1.将尽可能多的窄依赖关系的RDD划为同一个stage阶段. 2.当遇到shuffle操作,就意味着上一个stage阶段结 ...

  8. 大话Spark(1)-Spark概述与核心概念

    说到Spark就不得不提MapReduce/Hadoop, 当前越来越多的公司已经把大数据计算引擎从MapReduce升级到了Spark. 至于原因当然是MapReduce的一些局限性了, 我们一起先 ...

  9. Spark之RDD的定义及五大特性

    RDD是分布式内存的一个抽象概念,是一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,能横跨集群所有节点并行计算,是一种基于工作集的应用抽象. RDD底层存储原理:其数据分布存储于多台机器上 ...

随机推荐

  1. Redis安装以及主从实现

    Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). list(链表).set(集合)和zset(有序 ...

  2. (转)Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring

    Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring Mybatis在与Spring集成的时候可以配置MapperFactoryBea ...

  3. 精读JavaScript模式(一)

    一.前言 为什么读这本书? 其实做前端开发,一个需求给不同工作经验的人去做,只要完工时间不算苛刻,大家都是能实现的.功能实现虽然大致相同,但当我们回归代码去看实现方式,代码书写的美观程度,以及实现的方 ...

  4. Deep learning with Python 学习笔记(2)

    本节介绍基于Keras的CNN 卷积神经网络接收形状为 (image_height, image_width, image_channels)的输入张量(不包括批量维度),宽度和高度两个维度的尺寸通常 ...

  5. 【LeetCode题解】3_无重复字符的最长子串(Longest-Substring-Without-Repeating-Characters)

    目录 描述 解法一:暴力枚举法(Time Limit Exceeded) 思路 Java 实现 Python 实现 复杂度分析 解法二:滑动窗口(双指针) 思路 Java 实现 Python 实现 复 ...

  6. 开源方案搭建可离线的精美矢量切片地图服务-5.Mapbox离线项目实现

    项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...

  7. 公众号开发之wx-tools+springboot应用实战-音乐爬虫推送[JAVA]

    springboot+wx-tools实践!音乐爬虫推送公众号DEMOGitHub地址:wx-tools 最终DEMO源码地址: music_collector 先理一下大概的开发步骤: 1. 创建一 ...

  8. 浙大月赛ZOJ Monthly, August 2014

    Abs Problem Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge Alice and Bob is playing a ga ...

  9. POJ2387(KB4-A)

    Til the Cows Come Home Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 54716   Accepted ...

  10. BZOJ3601 一个人的数论

    Description 定义 \[ f_k(n)=\sum_{\substack{1\leq i\leq n\\gcd(i,n)=1}}i^k \] 给出\(n=\prod_{i=1}^w p_i^{ ...