首页

文章

谈谈RDD,DataFrame,Dataset的区别和各自的优势

发布网友 发布时间:2022-04-15 15:23

我来回答

2个回答

懂视网 时间:2022-04-15 19:44

rdd的特点如下:

  1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。

  2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。

  3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。

  4、RDD最重要的特性就是,提供了容错性,可以自动从节点失败中恢复过来。即如果某个节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会自动通过自己的数据来源重新计算该partition。这一切对使用者是透明的。

  5、RDD的数据默认情况下存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。

  

热心网友 时间:2022-04-15 16:52

RDD、DataFrame和DataSet是容易产生混淆的概念,必须对其相互之间对比,才可以知道其中异同。

RDD和DataFrame

RDD-DataFrame

上图直观地体现了DataFrame和RDD的区别。左侧的RDD[Person]虽然以Person为类型参数,但Spark框架本身不了解
Person类的内部结构。而右侧的DataFrame却提供了详细的结构信息,使得Spark
SQL可以清楚地知道该数据集中包含哪些列,每列的名称和类型各是什么。DataFrame多了数据的结构信息,即schema。RDD是分布式的
Java对象的集合。DataFrame是分布式的Row对象的集合。DataFrame除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效
率、减少数据读取以及执行计划的优化,比如filter下推、裁剪等。

提升执行效率

RDD
API是函数式的,强调不变性,在大部分场景下倾向于创建新对象而不是修改老对象。这一特点虽然带来了干净整洁的API,却也使得Spark应用程序在运
行期倾向于创建大量临时对象,对GC造成压力。在现有RDD
API的基础之上,我们固然可以利用mapPartitions方法来重载RDD单个分片内的数据创建方式,用复用可变对象的方式来减小对象分配和GC的
开销,但这牺牲了代码的可读性,而且要求开发者对Spark运行时机制有一定的了解,门槛较高。另一方面,Spark
SQL在框架内部已经在各种可能的情况下尽量重用对象,这样做虽然在内部会打破了不变性,但在将数据返回给用户时,还会重新转为不可变数据。利用
DataFrame API进行开发,可以免费地享受到这些优化效果。

减少数据读取

分析大数据,最快的方法就是 ——忽略它。这里的“忽略”并不是熟视无睹,而是根据查询条件进行恰当的剪枝。

上文讨论分区表时提到的分区剪 枝便是其中一种——当查询的过滤条件中涉及到分区列时,我们可以根据查询条件剪掉肯定不包含目标数据的分区目录,从而减少IO。

对于一些“智能”数据格 式,Spark
SQL还可以根据数据文件中附带的统计信息来进行剪枝。简单来说,在这类数据格式中,数据是分段保存的,每段数据都带有最大值、最小值、null值数量等

一些基本的统计信息。当统计信息表名某一数据段肯定不包括符合查询条件的目标数据时,该数据段就可以直接跳过(例如某整数列a某段的最大值为100,而查
询条件要求a > 200)。

此外,Spark SQL也可以充分利用RCFile、ORC、Parquet等列式存储格式的优势,仅扫描查询真正涉及的列,忽略其余列的数据。
李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 为什么vivo手机没有小V vivo小v在哪里打开 oppo r9s怎么部分截屏 oppo r9s 截图功能怎么开启 oppor9s怎么截屏,截屏后怎么发 oppor9s怎么截长屏? oppo r9s如何超级截屏? OPPOR9s这么截屏? OPPOR9s截图怎么截 oppor9s怎么长截屏 oppo r9s怎么截图 “OPPO R9S”手机怎么截图? OPPOR9s如何截图 OPPO R9s手机怎么截屏? oppor9s怎么截屏 oppor9s怎么快速截屏 oppor9s的截图功能在哪里 oppo r9s怎么截屏 乐视手机怎么备份数据 乐视一手机备份在哪图片 RDD,DataFrame和DataSet的区别 如何理解spark中RDD和DataFrame的结构 如何学习Spark大数据 Storm Spark Hadoop 这三个流行并行计算框架有什么不同 请简要描述一下hadoop,spark,mpi三种计算框架的特点以及分别适用于什么样的场景 如何把Spark RDD中的内容按行打印出来 hadoop,storm和spark的区别,比较 数据集的最基本组成单位是指rdd的什么属性 spark SQL和hive到底什么关系 Spark RDD,DataFrame和DataSet的区别 大数据技术是学什么的? 大数据专业成热门,该如何转行做大数据分析师 肝硬化晚期救治疗方 rc.conf和rc.local的区别 写秋天的特点的作文 早期的肝硬化可以逆转吗 手机屏幕显示原理是什么? 太阳能电池板可以直接接在蓄电池上给蓄电池充电吗? 太阳能板可以直接给电瓶充电吗 太阳能电池板能给汽车电瓶充电吗?我只有一个太阳能面板,可以直接给电瓶冲吗?需要什么配件吗??
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com