day56-Spark SQL和DataFrame的本质

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



SparkSQL 于DtaFrame

DataFrame与RDD

企业实践

一、    SparkSql于DataFrame

sparkSql之所以是出了spark core以外最大的和最受欢迎组件原因是:1、处理各种存储介质和各种格式的数据(可以方便扩展sparkSQL的功能来支持更多类型的数据例如kudu)

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

3、sparkSQL(DataFrame,DataSet)不仅是数据仓库的引擎,也是数据挖掘的引擎更为重要的是sparkSQL是数据科学计算和分析引擎。

4、后来的DataFramesparkSQL)一举成为了大数据计算引擎的技术实现尤其在TungSten的强力支持下

5Hive+SparkSQL+DataFrame

5.1hive负责廉价的数据仓库设置存储

5.2sparkSQL:负责高速的计算

5.3DataFrame复杂复杂的挖掘技术

二、    DataFrame与RDD

1、         R和Python都有DataFrame,spark中的dataFerame。Spark中的dataFrame是一个分布式的Table形式如下

Name

Age

Tel

 

 

String

Int

Long

 

 

String

Int

Long

 

 

String

Int

Long

 

 

String

Int

Long

 

 

String

Int

Long

 

 

String

Int

Long

 

 

DataFrame带有具体每条数据的schel元数据信息,在二维表中每一列都带有数据名称和数据类型

 

RDD 形式如下

Person

Person

Person

                Person

                 Person

                      Person

                       Person

RDD本身不知道person里面有什么数据,

DataFrane 和RDD的根本差异:

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

b:DataFrame包含了每个Record的MeataData信息,也就是说DataFrame的优化属于内部的优化,不能像RDD一样只能基于行进行优化。

你可能感兴趣的:(day56-Spark SQL和DataFrame的本质)