Spark SQL与DataFrame
2017-01-16 17:20
211 查看
Spark SQL是2013年出现的,数据的多维分析。
Spark SQL是除了Spark Core 以外最大的和最受关注的组件:
1.处理一切存储介质和各种格式的数据(同时可以扩展Spark SQL来支持更多类型的数据,例如KUDU),
2.Spark SQL把数据仓库的计算能力推向了新的高度,不仅是计算速度(Spark SQL比Shark快了至少一个数量级,而Shark比Hive快了至少一个数量级,尤其是在Tungsten成熟以后更牛),更重要的是将数据仓库的计算复杂度推向了新的高度(Spark SQL后续推出的DataFrame可以把数据仓库直接使用机器学习、图计算等复杂的算法库来对数据仓库进行复杂深度数据价值的挖掘)
3.Shark 依赖的Hive不是官网版本是改造后的,版本维护非常麻烦。
4.Spark SQL(DataFrame、DataSet)不仅是数据仓库的引擎,也是数据挖掘的引擎,更为重要的是数据科学计算和分析的引擎。
5.DataFrame让Spark SQL一举成为大数据计算引擎的技术实现的霸主,尤其是在Tungsten的强力支持下。
6.Hive + Spark SQL + DataFrame技术组合
Hive:负责廉价的数据仓库存储
Spark SQL:负责高速计算
DataFrame:负责复杂的数据挖掘
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DataFrame与RDD
1.DataFrame从形式上看最大的不同点是天生的分布式,可以简单的认为Spark中的DataFrame是一个分布式的Table,而RDD是一条一条的数据,不知道数据内部结构
2.根本差异:
(1)RDD是以Record为单位的,Spark在优化的时候是无法洞悉Record内部的细节,所以也就无法进行更深度的优化,这极大地限制Spark SQL性能的提升。
(2)DataFrame包含了每个Record的Metadata信息,也就是说DataFrame的优化是基于列内部的优化,而不是像RDD一样只能够基于行进行优化。
Spark SQL是除了Spark Core 以外最大的和最受关注的组件:
1.处理一切存储介质和各种格式的数据(同时可以扩展Spark SQL来支持更多类型的数据,例如KUDU),
2.Spark SQL把数据仓库的计算能力推向了新的高度,不仅是计算速度(Spark SQL比Shark快了至少一个数量级,而Shark比Hive快了至少一个数量级,尤其是在Tungsten成熟以后更牛),更重要的是将数据仓库的计算复杂度推向了新的高度(Spark SQL后续推出的DataFrame可以把数据仓库直接使用机器学习、图计算等复杂的算法库来对数据仓库进行复杂深度数据价值的挖掘)
3.Shark 依赖的Hive不是官网版本是改造后的,版本维护非常麻烦。
4.Spark SQL(DataFrame、DataSet)不仅是数据仓库的引擎,也是数据挖掘的引擎,更为重要的是数据科学计算和分析的引擎。
5.DataFrame让Spark SQL一举成为大数据计算引擎的技术实现的霸主,尤其是在Tungsten的强力支持下。
6.Hive + Spark SQL + DataFrame技术组合
Hive:负责廉价的数据仓库存储
Spark SQL:负责高速计算
DataFrame:负责复杂的数据挖掘
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DataFrame与RDD
1.DataFrame从形式上看最大的不同点是天生的分布式,可以简单的认为Spark中的DataFrame是一个分布式的Table,而RDD是一条一条的数据,不知道数据内部结构
2.根本差异:
(1)RDD是以Record为单位的,Spark在优化的时候是无法洞悉Record内部的细节,所以也就无法进行更深度的优化,这极大地限制Spark SQL性能的提升。
(2)DataFrame包含了每个Record的Metadata信息,也就是说DataFrame的优化是基于列内部的优化,而不是像RDD一样只能够基于行进行优化。
相关文章推荐
- Java编程:java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp之间的区别
- Hibernate 的HQL和sql有什么区别
- Mac笔记本中使用postgresql
- NopCommerce支持多数据库
- centos 安装 apache nginx php mariadb
- Oracle PL/SQL入门语法点
- 统计每日单量MySQL语句
- sql里面EXCEPT、INTERSECT的区别
- 【数据库原理】索引实例证明(一个单引号引发的MYSQL性能损失)
- SqlServer--bat批处理执行sql语句2-sqlcmd
- 分布式集群Session共享 简单多tomcat8+redis的session共享实现
- 【菜鸟数据库学习日记】从头开始学MySQL(4)
- SQL Server日志文件过大 大日志文件清理方法 不分离数据库
- MySQL新增用户以及数据库访问授权
- Oracle新建用户赋只读某几张表的权限
- mysql 数据一致性校验
- 一次非常有意思的SQL优化经历
- Spring整合Redis实现数据缓存
- hb_gui配置heartbeat做MariaDB的高可用
- SqlServer--bat批处理执行sql语句1-osql