Spark-SparkSQL与DataFrame的本质

SparkSQL与DataFrame

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

  • 处理一切存储介质和各种格式的数据(同时可以方便的扩展SparkSQL的功能来支持更多类型的数据,例如Kudu)
  • Spark SQL把数据仓库的计算能力推向新的高度,不仅是计算速度(Spark SQL比Shark快了至少一个数量级,而Shark比Hive快了至少一个数量级,尤其是在Tungsten成熟以后会更快),更为重要的是把数据仓库的计算复杂度推向历史上全新的高度(Spark SQL后续推出的DataFrame可以让数据仓库直接使用机器学习,图计算等复杂的算法库来对数据仓库进行复杂深度数据价值的挖掘)
    【Shark被放弃的原因:Shark依赖的Hive不是官方原生版本,版本维护较为麻烦,Hive官方版本更新慢,所以决定终端Shark开发】
  • SparkSQL(DataFrame、DataSet)不仅是数据仓库的引擎,而且也是数据挖掘的引擎,更为重要的是SparkSQL是数据科学计算和分析引擎!
  • 后来的DataFrame让SparkSQL一举成为大数据计算引擎的计算实现霸主(在Tungsten的强力支持下)
传统数据库仅剩的应用场景:实时事务性分析
数据库的死穴是扩展性差:数据库也不能进行分布式计算
  • Hive + SparkSQL + DataFrame:目前至少是中国所有大数据项目至少90%无法逃脱该技术组合
    • Hive:负责廉价的数据仓库存储
    • SparkSQL:负责高速的计算
    • DataFrame:负责复杂的数据挖掘
DataFrame与RDD

R和python中都有DataFrame,Spark中的DataFrame从形式上看最大的不同点是天生是分布式的,可以简单的认为Spark中的DataFrame是一个分布式的Table
在这里插入图片描述

RDD和DataFrame的差异
1、RDD是以Record为单位的,Spark在优化的时候无法洞悉Record内部的细节,所以也就无法进行更深度的优化,极大的限制了SparkSQL性能的提升
2、DataFrame包含了每个Recod的Metadata信息,也就是说DataFrame的优化是基于列内部的优化而不是像RDD一样只能基于行进行优化
SparkSQL企业级最佳实践
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值