(五)什么是RDD-JavaPython版Spark

什么是RDD

视频教程:

1、优酷

2、YouTube

 

  RDD是个抽象类,全称为Resilient Distributed Datasets,是一个容错的、并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组丰富的操作来操作这些数据诸如mapflatMapfilter等转换操作除此之外,RDD还提供了诸如joingroupByreduceByKey等更为方便的操作以支持常见的数据运算。但实际上继承RDD的派生类一般只要实现两个方法:

1getPartitions()用来告知怎么将input分片;

2compute()用来输出每个Partition被函数处理的一个单元);

 

RDD的特点:

1它是在集群节点上的不可变的、已分区的集合对象。

2通过并行转换的方式来创建如(map, filter, join, etc)。

3失败自动重建。

4可以控制存储级别(内存、磁盘等)来进行重用。

5必须是可序列化的。

6是静态类型的。

 

RDD的好处

1RDD只能从持久存储或通过Transformation操作产生,相比于分布式共享内存(DSM)可以更高效实现容错,对于丢失部分数据分区只需根据它的lineage就可重新计算出来,而不需要做特定的Checkpoint( RDD实现了基于Lineage的容错机制。RDD的转换关系,构成了compute chain,可以把这个compute chain认为是RDD之间演化的Lineage。在部分计算结果丢失时,只需要根据这个Lineage重算即可。)

2RDD的不变性,可以实现类似Hadoop MapReduce的推测式执行。

3RDD的数据分区特性,可以通过数据的本地性来提高性能,这与Hadoop MapReduce是一样的。

4RDD都是可序列化的,在内存不足时可自动降级为磁盘存储,把RDD存储于磁盘上,这时性能会有大的下降但不会差于现在的MapReduce

 

RDD的存储与分区

1用户可以选择不同的存储级别存储RDD以便重用。

2当前RDD默认是存储于内存,但当内存不足时,RDDspilldisk

3RDD在需要进行分区把数据分布于集群中时会根据每条记录Key进行分区(如Hash 分区),以此保证两个数据集在Join时能高效。

 

RDD的内部表示

RDD的内部实现中每个RDD都可以使用5个方面的特性来表示:

1分区列表(数据块列表)

2计算每个分片的函数(根据父RDD计算出此RDD

3对父RDD的依赖列表

4key-value RDDPartitioner(可选)

5每个数据分片的预定义地址列表(HDFS上的数据块的地址)(可选)

 

RDD创建方式:

1、从Hadoop文件系统(或与Hadoop兼容的其它存储系统)输入(例如HDFS)创建。

2、从父RDD转换得到新RDD

3、通过parallelize将单机数据创建为分布式RDD

 

转载于:https://www.cnblogs.com/LgyBean/p/6251296.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LazyInitializationException的四种解决方案–第1部分

在今天的帖子中,我们将讨论常见的LazyInitializationException错误。 我们将看到四种避免该错误的方法,以及每种方法的优缺点。在本文的最后,我们将讨论EclipseLink如何处理该异常。 为了看到LazyInitializationException错误并进行处理&…

linux驱动

jeffies hz xtime 每秒钟系统时钟节拍数 prco < 内核内存视窗 include/linux/list.h < 内核的数据结构&#xff0c;链表 workques_struct 工作队列转载于:https://www.cnblogs.com/asreg/p/7148606.html

java 条码识别_条码识别示例代码

package api.jisuapi.barcode;import api.util.HttpUtil;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class Read {public static final String APPKEY "your_appkey_here";// 你的appkeypublic static final String URL "https://ap…

终极JPA查询和技巧列表–第2部分

这一部分是该系列文章的第一部分 。 JPA&#xff1a;NamedQuery&#xff0c;使用日期查询&#xff0c;有关getSingleResult方法的警告 为了避免重复查询代码&#xff0c;提高性能并简化维护查询&#xff0c;我们可以使用NamedQueries。 NamedQuery使用JPQL作为语法&#xff0c…

设置UITableView设置contentsize

由于UITableView是继承自UIScrollView的&#xff0c;所以他是可以设置contentsize的。 但是&#xff0c;我在试验的过程中&#xff0c;初始化UITableView实例后&#xff0c;直接设置它的contentsize是不起作用&#xff0c;在搜寻相关资料得知&#xff0c;UITableView会自动设置…

java 线程什么时候结束_java线程什么时候让出cpu?

Thread.sleep();sleep就是正在执行的线程主动让出cpu&#xff0c;cpu去执行其他线程&#xff0c;在sleep指定的时间过后&#xff0c;cpu才会回到这个线程上继续往下执行&#xff0c;如果当前线程进入了同步锁&#xff0c;sleep方法并不会释放锁&#xff0c;即使当前线程使用sle…

Hibernate配置方式

Hibernate配置方式 Hibernate给人的感受是灵活的&#xff0c;要达到同一个目的&#xff0c;我们可以使用几种不同的办法。就拿Hibernate配置来说&#xff0c;常用的有如下三种方式&#xff0c;任选其一。 在 hibernate.cfg.xml 中加入元素 <property>、<mapping>&a…

js中 javascript:void(0) 用法详解

javascript:void(0)表示不做任何动作。如&#xff1a; 复制代码代码如下:<a href"javascript:void(0);" οnclick"alert(ok);"></a> 这里表示这个链接不做跳转动作&#xff0c;执行onClick事件。 我想使用过ajax的都常见这样的代码&#xff1…

带有ActiveMQ的JMS

带有ActiveMQ的JMS JMS是Java Message Service的缩写&#xff0c;它提供了一种以松散耦合&#xff0c;灵活的方式集成应用程序的机制。 JMS以存储和转发的方式跨应用程序异步传递数据。 应用程序通过充当中介的MOM&#xff08;面向消息的中间件&#xff09;进行通信&#xff0c…

矩阵分解 java_使用矩阵分解为推荐系统

矩阵分解假设“潜在因素”&#xff0c;例如对用户的意大利食物的偏好和项目食物的意外性与矩阵中的评级有关 .因此&#xff0c;整个问题类型转变为矩阵重构问题&#xff0c;存在许多不同的解决方案 . 一个简单的&#xff0c;可能很慢的解决方案是(除了ALS和其他一些矩阵重建的可…

用户故事排球教练助手

计划&#xff1a;估计这个任务需要一周时间 需求分析&#xff1a;作为一名排球教练助手&#xff0c;我需要了解每场每位队员的技术动作&#xff0c;每场比赛每位队员的得分情况&#xff0c;以便教练更好的了解到每位队员的发挥情况和特长。 设计文档&#xff1a;用户进入此界面…

TMS320DM642学习----第一篇(硬件连接)

DSP设备型号&#xff1a;SEED-DTK-VPM642&#xff08;目前实验室用途&#xff1a;视频处理&#xff0c;图像处理方向&#xff0c;预计搭载目标跟踪以及云台防抖等算法&#xff09; 官网链接&#xff1a;http://www.seeddsp.com/index.php/Home/Product/detail/name/1/id/174.ht…

字符串内存内部

本文基于我对StackOverflow的回答 。 我正在尝试解释String类如何存储文本&#xff0c;内部存储和常量池如何工作。 这里要理解的要点是String Java对象与其内容– private value字段下的char[]之间的区别。 String基本上是char[]数组的包装器&#xff0c;将其封装并使其无法修…

关于inline-block 元素之间为何会产生间隔

关于inline-block 元素之间为何会产生间隔 现象&#xff1a; <body><input type"text"><input type"text"> </body> 在浏览器中的表现&#xff1a; 实时上不仅仅是 inline-block 会导致这种现象。 inline 也会导致。 那问题来了&a…

java 入参 是 枚举_java 枚举 参数传递

展开全部这样做是不行的&#xff0c;原因是&#xff1a;Java中的对象实例化都是在堆中&#xff0c;如果是普通的类实例变量&#xff0c;比如在方法636f707962616964757a686964616f313333376166371中定义的普通类实例变量&#xff0c;传到了方法2中&#xff0c;由于方法1和方法2…

loadView的使用总结

一、loadView 1. loadView什么时候被调用&#xff1f; 每次访问UIViewController的view&#xff08;如 controller.view、self.view&#xff09;并且view为nil&#xff0c;loadView方法就会被调用 2. 有什么作用 loadView 方法是用来负责创建UIViewController的view 3. 默认实…

数据库备份 java jar_Java实现数据库备份并利用ant导入SQL脚本

​数据备份对于经常在运维部署方面的工作者来说&#xff0c;是一件相对简单的事情&#xff0c;都可以通过某一个SQL工具进行备份&#xff0c;但是如果在项目运行当中&#xff0c;我们需要对数据进行实时&#xff0c;或者是每隔一星期&#xff0c;一个月&#xff0c;等等进行数据…

JSF简单Ajax示例

今天&#xff0c;我们将看到一些使用JSF的Ajax简单样本。 如果要查看有关JSF / Web应用程序的其他文章&#xff0c;请单击以下链接&#xff1a; 重定向后的JSF持久化对象和消息 &#xff0c; 使用JAAS和JSF进行用户登录验证 &#xff0c; JSF&#xff1a;Converter and Bean Au…

常用的好用的window工具

1. FastStone Capture截图录屏软件 百度软件中心&#xff1a;http://rj.baidu.com/soft/detail/13504.html?ald 注册企业版&#xff1a; 用户名&#xff1a;c1ikm 注册码&#xff1a;AXMQX-RMMMJ-DBHHF-WIHTV 中文输入乱码解决方法&#xff1a; 2. Notepad文本编辑器&#xff…

表分区

http://www.cnblogs.com/leestar54/p/6225821.html转载于:https://www.cnblogs.com/jouny/p/6262850.html