第56课:揭秘SparkSQL和DataFrame的本质学习笔记

第56课:揭秘SparkSQLDataFrame的本质学习笔记

本期内容:

1. SparkSQLDataFrame

2.  DataFrameRDD

3. 企业级最佳实践

 

一.SparkSQLDataFrame

SparkSQL之所以是除了SparkCore外最大的和最受关注的组件,原因是:

A)处理一切存储介质和各种格式的数据(同时可以方便地扩展SparkSQL的功能来支持更多类型的数据,例如KudoKudo在存储和计算效率间取得了完美的平衡),包括实时数据处理。

2015Hadoop出现了一种新的存储:Kudu

大数据9大神器之一:Kudo(大数据的奥秘电视节目中有讲解)

B)SparkSQL把数据仓库的计算能力推向了新的高度。不仅有无敌的计算速度(SparkSQLShark快了至少一个数量级,而SharkHive快了至少一个数量级。尤其是在Tungsten成熟以后会更加无可匹敌)。更为重要的是把数据仓库的计算复杂度推向了历史上全新的高度(SparkSQL后续推出的DataFrame可以让数据仓库直接使用机器学习图计算等复杂的算法库来对数据仓库进行深度数据价值挖掘)

Hive只是进行数据多维度查询。SparkSQL可以进行机器学习、图计算,所以是里程碑式的技术。

Shark为什么会被放弃?

=> Shark依赖的Hive不是官方原生版本,版本维护非常麻烦,Hive官方版本更新慢,所以决定中断Shark开发。

CSparkSQ(DataFrameDataSet)不仅是数据仓库的引擎,也是数据挖掘的引擎,更为重要的是SparkSQL是数据科学计算和分析引擎!!!

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

传统数据库仅剩的应用场景:实时事务性分析。

数据库的死穴是扩展性差。数据库也不能分布式计算,

EHive+SparkSQL+DataFrame是目前至少在中国所有的大数据项目至少90%无法逃脱该技术组合,

Hive负责廉价的数据仓库存储

SparkSQL负责高速计算

DataFrame负责复杂的数据挖掘

DataFrame是一个新的API

 

二.DataFrameRDD

1. RPython中都有DataFrameSpark中的DataFrame从形式上看最大的不同点是其天生是分布式的。可以简单认为Spark中的DaraFrame是一个分布式的Table。形式如下所述:

Name

Age

Tel

String

Int

Long

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

Person

DataFrame的每一列都有名称和类型。

2. RDDDataFrame的根本差异:

ARDD是以Record为单位的,Spark在优化时无法洞悉Record内部细节,所以也就无法进行更深度的优化,这极大限制了SparkSQL性能的提升!

BDataFrame包含了每个RecordMetaData信息,即DataFrame的优化是基于列内部的优化,而不是像RDD一样只能基于行进行优化。

Hive包含元数据和数据本身,DataFrame也包含元数据和数据本身。

三.SparkSQL企业级最佳实践

1. 过去的IT系统阶段:

第一阶段:最开始阶段,文件存储在FileSystem中,用c代码处理数据。
第二阶段:javaEE加数据库。

瓶颈:数据库不能分布式(扩展性),企业只能处理部分数据,数据需要经过过滤后再放进数据库中。
第三阶段:Hive。数据库局限太多导致转向hive,但hive计算能力有限,速度性能问题
第四阶段:hive 转向sparksql+Hive,计算能力是一个问题
第五阶段:hive+SparkSQL+dataFrame
第六阶段:hive+SparkSQL+dataFrame+dataSet

 

 

 

以上内容是王家林老师DT大数据梦工厂《 IMF传奇行动》第56课的学习笔记。
王家林老师是Spark、Flink、DockerAndroid技术中国区布道师。Spark亚太研究院院长和首席专家,DT大数据梦工厂创始人,Android软硬整合源码级专家,英语发音魔术师,健身狂热爱好者。

微信公众账号:DT_Spark

联系邮箱18610086859@126.com 

电话:18610086859

QQ:1740415547

微信号:18610086859  

新浪微博:ilovepains

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值