1、究竟什么是RDD呢?

有人可能会回答是:Resilient Distributed Dataset。没错,的确是如此。但是我们问这个实际上是想知道RDD到底是个什么东西?以及它到底能干嘛?好的,有了问题,那么我们带着问题往下看,总会有答案的。
2、hadoop的计算模型&spark的计算模型

(1)首先我们可以看一下hadoop的计算模型:在这幅图中,每一次job的运行都需要对数据进行磁盘的读写操作。

(2)再来看一下spark的计算模型:它的每一次job可以暂时将数据缓存到内存中,从而避免了每一次都进行磁盘的读写操作。并且只有在必要的时候进行一个磁盘的读写。这样一来,就提升了计算速度。

3、RDD的由来和创建方式

好了,说了这么多,貌似是跟RDD没有多大的关系,其实不然。我们来看,为了实现上面spark的内存计算模型,采用的方式就是RDD。当然你实在是想问RDD到底是什么,我觉得你可以把它看作是一个抽象类,或者是一个类型(如Int,Double等)。

那么我们如何创建RDD呢?

我们有三种方式可以创建RDD。分别是:

(1)通过已存在的Scala的集合来创建

(2)通过读取HDFS、Hbase的文件来创建

(3)通过其他的RDD来创建

4、RDD的特征

其实,具体说到RDD到底是什么鬼东西,我们也可以从它具备的特征上来理解一下。RDD所具备的特征有:

(1)A Lsit of  partitions

意思就是说,每一个RDD包含多个partition,并且这个partition的个数可以由用户来制定

(2)A function for computing each split

对应的每一个分片上都会应用一个函数来进行计算。

(3)A list of dependencies on other RDDs

每一个RDD可能依赖一个或多个父的RDD

(4)A partitioner for  key-value RDDs

针对键值对的RDD,用户可以自定义partitioner

(5)A list of preferred location to compute each split on

针对每一个分片,都会选择一个最优的位置来进行计算,这就是所谓的数据不动,代码动。

5、RDD的操作

RDD主要包含两大类的操作:transformations and actions。其中各自主要的基本操作如下图所示:

6、RDD的transformations操作的lazy特性

  所谓lazy特性就是来执行,就是在需要的时候,再去执行。这也是RDD一大特性。

浅谈大数据神器Spark中的RDD的更多相关文章

  1. 浅谈大数据和hadoop家族

    按照时间的早晚从大数据出现之前的时代讲到现在.暂时按一个城市来比喻吧,反正Landscape的意思也大概是”风景“的意思. 早在大数据概念出现以前就存在了各种各样的关于数学.统计学.算法.编程语言的研 ...

  2. 浅谈大数据与hadoop家族

    按照时间的早晚从大数据出现之前的时代讲到现在.暂时按一个城市来比喻吧,反正Landscape的意思也大概是”风景“的意思. 早在大数据概念出现以前就存在了各种各样的关于数学.统计学.算法.编程语言的研 ...

  3. [Hadoop 周边] 浅谈大数据(hadoop)和移动开发(Android、IOS)开发前景【转】

    原文链接:http://www.d1net.com/bigdata/news/345893.html 先简单的做个自我介绍,我是云6期的,黑马相比其它培训机构的好偶就不在这里说,想比大家都比我清楚: ...

  4. 云计算分布式大数据神器Spark实战高手之旅

    从2012年1月份研究Spark到如今已经两年多的时间了. 在这两年多的时间里比較彻底的研究了Spark的源码并已经在2014年4月24日编写完毕了世界上第一本Spark书籍. 鉴于CSDN在大陆IT ...

  5. 转:浅谈CSS在前端优化中一些值得注意的关键点

    前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...

  6. 【互动问答分享】第15期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    "决胜云计算大数据时代" Spark亚太研究院100期公益大讲堂 [第15期互动问答分享] Q1:AppClient和worker.master之间的关系是什么? AppClien ...

  7. 浅谈Python在信息学竞赛中的运用及Python的基本用法

    浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...

  8. 【WebApi系列】浅谈HTTP在WebApi开发中的运用

    WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...

  9. 【大数据】Spark性能优化和故障处理

    第一章 Spark 性能调优 1.1 常规性能调优 1.1.1 常规性能调优一:最优资源配置 Spark性能调优的第一步,就是为任务分配更多的资源,在一定范围内,增加资源的分配与性能的提升是成正比的, ...

随机推荐

  1. ROS学习笔记(四)——环境变量配置

    1.查看环境变量配置情况,其实并没有什么卵用 $ export | grep ROS 或者用 $ printenv | grep ROS2.配置环境变量??$ source /opt/ros/indi ...

  2. hub config

    @echo off title Selenium_Hub cd /d %~dp0 java -jar selenium-server-standalone-2.48.2.jar -role hub - ...

  3. Snoopy+phpquery采集demo

    用phpquery类,写了个采集的demo,以 某网贷平台的 一个列表为例,我们要采集该平台下面的 各平台名称,结构树如下 include 'phpQuery.php'; phpQuery::newD ...

  4. Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法

    Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...

  5. 11.10 Taolu1234组信息汇总

    团队名称: Taolu1234 团队选题: <餐厅到店点餐系统>WEB版 团队博客地址: http://www.cnblogs.com/queenjuan/ 团队GITHUB地址: htt ...

  6. java使用代理 html2canvas 截屏 将页面内容生成图片

    1.html2canvas 生成图片简单又好用,但涉及到跨域就会出现问题,官方给出的解决办法是设置代理.基本原理就是在后端将图片的数据生成base64再返回给前端使用.使canvas画布分析元素的时候 ...

  7. jQuery 点击显示再次点击隐藏

    <html> <head> <script type="text/javascript" src="/jquery/jquery.js&qu ...

  8. javascript和jquey的自定义事件小结

    “通过事件机制,可以将类设计为独立的模块,通过事件对外通信,提高了程序的开发效率.” 可以把多个关联但逻辑复杂的操作利用自定义事件的机制灵活地控制好 对象之间通过直接方法调用来交互 1)对象A直接调用 ...

  9. 关于java中创建文件,并且写入内容

    以下内容完全为本人原创,如若转载,请注明出自:http://www.cnblogs.com/XiOrang/ 前两天在项目中因为要通过http请求获取一个比较大的json数据(300KB左右)并且保存 ...

  10. UIImage

    //设置UIImage的圆角 + (UIImage *)imageNamed:(NSString *)name size:(CGSize)size cornerRadius:(CGFloat)corn ...