Spark SQL和DataFrame的本质

1, Spark SQL和DataFrame(DataSet,还没有深度去使用)

2, DataFrame与RDD

3, 企业级最佳实践

一:Spark SQL和DataFrame

1, Spark SQL是除了Spark Core以外最大的和最受关注的组件。

a) 其更加强大,可以操作各种数据来源和各种格式的数据;用户可以扩展Spark SQL的功能来支持更多类型的数据(例如Kudu)。

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

c) Spark SQL(DataFrame、DataSet)不仅是数据仓库的引擎,而且也是数据挖掘的引擎,更为重要的是Spark SQL是数据科学计算和分析引擎!!!

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

e) Hive+Spark SQL+DataFrame,过去绝大部分公司都是这个解决方案。

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

ii:Spark SQL负责高速的计算

iii:DataFrame负责复杂的数据挖掘(DataFrame是一个新的API,不是Spark SQL)

二:DataFrame和RDD

1,R和Python中都有DataFrame,Spark中的DataFrame从形式上看最大的不同点是其天生是分布式的;你可以简单的认为Spark中的DataFrame是一个分布式的Table。

这里写图片描述

  1. RDD和DataFrame的根本差异是:
    a) RDD是以Record为单位的,Spark在优化的时候无法洞悉Record内部的细节,所以也就无法进行更深度的优化,这极大的限制了Spark SQL性能提升!
    b) DataFrame包含了每个Record的Metadata信息,也就是说DataFrame的优化是基于列内部的优化,而不是像RDD一样只能够基于行进行优化。

三:Spark SQL企业级最佳实践

第二阶段:JavaEE加数据库,瓶颈数据库不能分布式(扩展性),企业只能处理局部数据,数据过滤然后在数据库中。
第三阶段:数据局限导致Hive,Hive计算能力有限,出现速度性能问题。
第四阶段:Hive转向Spark SQL+Hive,计算能力是一个问题。
第五阶段:Hive+Spark SQL+DataFrame
第六阶段:Hive+Spark SQL+DataFrame+DataSet
领先的处在第五个阶段,大部分处在第三个和第四个阶段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值