您的位置:首页 > 数据库

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一样只能够基于行进行优化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: