day60:sparkSql

以下内容来源于DT大数据梦工厂:


一:SparkSQL 与DataFrame

1、 sparksql之所以是除了spark core以外最大的和最受关注的组件,原因是:

a) 处理一切存储介质和各种格式的数据(同时可以方便的扩展sparksql的功能来支持更多类型的数据例如:kudu)

b)  spark SQL把数据仓库的设计推向了新的高度,不仅仅是无敌的计算速度(sparksql比shark快乐至少一个数量级,而shark币hive快了至少一个数量级。尤其在Tungsten成熟以后更加无可匹敌,)把数据仓库

的的计算复杂度推向了新高度(sparksql 后续推出的DataFrame可以让数据仓库直接使用机器学习、图计算等复杂度的算法库对数据仓库进行复杂深度数据价值的挖掘);

运行引擎主要是靠spark

c) spark sql (DataFrame DataSet)不仅是数据仓库的引擎,而且也是数据挖掘的引擎,更为重要的是spark生气了是数据科学计算和分析引擎

    hive+ SparkSQL+DataFrame大数据解决方案。

hive 负责廉价数据仓库存储;

sparksql 负责高速的计算

DataFrame 负责数据挖掘

d)后来的DataFrame 让spark(SQL)一举成为大数据计算引擎的技术实现霸主尤其是在Tungsten的强力支持下

e) 


二 DataFrame 与RDD

1、R 和python中都有DataFrame,spark 中的DataFrame从形式上看最大的不同是其天生是分布式的,可以简单的认为spark中的DataFrame是一个分布式的Table,

形式如下:DataFrame  

Name Age Tel
String Int Long
String Int Long
String Int Long
String Int Long
String Int Long
String Int Long

而RDD 形式如下:


                      Person
                      Person
                      Person
                      Person
                      Person
                     Person

a) RDD 是以record为单位的,spark在优化的时候无法获得Record内部的细节,所以也就是无法进行更深度的优化,这极大的限制了sparksql提升

d) DataFrame

三、企业及应用

第一阶段:最开始阶段文件存储,c代码处理

第二阶段:javaEE加数据库,瓶颈数据库不能分布式(扩展性),企业只能处理局部数据,数据过滤然后在放在数据库中。

第三阶段数据局限导致hive,hive 计算能力有限,速递性能问题

第四阶段:hive 转向sparksql+hive,速度问题,计算能力是一个问题

第五阶段:hive+spark SQL+dataFrame 

第六阶段:hive+spark SQL+ dataFrame +dataSet



你可能感兴趣的:(day60:sparkSql)