RDD和DataFrame和Dataset比较
来源:互联网 发布:python 累积分布图 编辑:程序博客网 时间:2024/05/15 13:55
一 SparkSQL简介
Spark SQL是一个能够利用Spark进行结构化数据的存储和操作的组件,结构化数据可以来自外部结构化数据源也可以通过RDD获取。
外部的结构化数据源包括Hive,JSON,Parquet,RMDBS等。当前Spark SQL使用Catalyst优化器来对SQL进行优化,从而得到更加高效的执行方案。并且可以将结果存储到外部系统。
二 DataFrame & Dataset介绍
2.1DataFrame 介绍
DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据块中的表,它与RDD最主要的区别在于:DataFrame有schema元数据,即DataFrame所表示的数据集的每一列都有名称和数据类型。正是因为有了这些schema元数据,Sparl SQL的查询优化器就可以进行针对性的优化
2.2 Dataset介绍
Dataset也是一种分布式数据集,可以使用map,flatmap等函数进行转换,DataFrame是一个Dataset的特例,等价于Dataset[Row]; Dataset的操作分为transformation和action 两种,transformation用于创建新的Dataset,而action用于计算操作;它和RDD一样具有惰性,只有action操作被调用的时候才会进行计算;DataSet创立需要一个显式的Encoder,把对象序列化为二进制
三 RDD、DataFrame、Dataset之间的比较
3.1 相同点
# RDD、DataFrame、Dataset全都是spark平台下的分布式弹性数据集
# 三者都有惰性机制,在进行创建、转换,如map方法时,不会立即执行。只有在执行action操作的时候,才会进行计算。
3.2 不同点
3.2.1 RDD和 DataFrame的比较
# 前者没有schema信息;后者有schema信息
# RDD无法得知所存的数据元素的具体内部结构,Spark Core只能在stage层面进行简单的优化;后者因为有schema信息,Sparl SQL的查询优化器就可以进行针对性的优化
# RDD通过函数式调用API,虽然简洁明了,但是需要创建新的对象,不容易重用旧的对象,给GC带来挑战;DataFrame是尽可能的重用对象
3.2.2 DataFrame和 Dataset的比较
# DataFrame是带有类型的,即需要指定类型;但是DataFrame无需指定类型。DataFrame是一个Dataset的特例,等价于Dataset[Row]
# DataFrame带有schema,而DataSet没有schema
- RDD和DataFrame和Dataset比较
- spark基础之RDD和DataFrame和Dataset比较
- 区别RDD、DataFrame和DataSet
- DataFrame格式化和RDD/Dataset/DataFrame互转
- Spark RDD、DataFrame和DataSet的区别
- RDD、DataFrame和DataSet的区别
- Spark RDD、DataFrame和DataSet的区别
- Spark RDD、DataFrame和DataSet的区别
- RDD、DataFrame和DataSet的区别
- RDD、DataFrame和DataSet的区别
- RDD、DataFrame和DataSet的区别
- Spark RDD、DataFrame、DataSet区别和联系
- Spark RDD、DataFrame和DataSet的区别
- spark core组件:RDD、DataFrame和DataSet
- RDD、DataFrame和DataSet的区别
- Spark RDD、DataFrame和DataSet的区别
- Rdd,DataFrame和DataSet的区别
- RDD、DataFrame和DataSet的区别
- CSS中的定位
- 从零搭建Redis-Scrapy分布式爬虫
- Qml中Image加载图片再不同平台的方式
- DHCP(四)
- javascript event(事件对象)详解
- RDD和DataFrame和Dataset比较
- QQ允许陌生人聊天
- 一位资深程序员大牛给予Java初学者的学习路线建议
- docker常用命令
- 通用电气申请专利,区块链在航空管理的作用
- 【重磅】第三届区块链全球峰会全程演讲视频,正式公开!
- 加拿大警方发布比特币税务骗局警告
- Oracle 10g/11g 数据库导入导出命令详解
- 花旗CEO:比特币威胁会促成国家发行数字货币