spark sql和DataFrame本质
来源:互联网 发布:java.io.eofexception 编辑:程序博客网 时间:2024/04/29 21:51
一:Spark SQL与DataFrame
1, Spark SQL之所以是除了Spark Core以外最大的和最受关注的组件,原因是:
a) 处理一切存储介质和各种格式的数据(您同时可以方便的扩展Spark SQL的功能来支持更多类型的数据,例如Kudu);
b) Spark SQL把数据仓库的计算能力推向了新的高度,不仅是无敌的计算速度(Spark SQL比Shark快了至少一个数量级,而Shark比Hive快了至少一个数量级,尤其是在Tungsten成熟以后会更加无可匹敌),更为重要的是把数据仓库的计算复杂度推向了历史上全新的高度(Spark SQL后续推出的DataFrame可以让数据仓库直接使用机器学习、图计算等复杂的算法库来对数据仓库进行复杂深度数据价值的挖掘);
c) Spark SQL(DataFrame、DataSet)不仅是数据仓库的引擎,而是也是数据挖掘的引擎,更为重要的是Spark SQL是数据科学计算和分析引擎!!!
d) 后来的DataFrame让Spark(SQL)一举成为了大数据计算引擎的技术实现霸主(尤其是在Tungsten的强力支持下)!
e) Hive+Spark SQL+ DataFrame:目前至少是在中国所有的大数据项目至少90%无法逃脱该技术组合
i. Hive:负责廉价的数据仓库存储
ii. Spark SQL:负责高速的计算;
iii. DataFrame:负责复杂的数据挖掘
二:DataFrame与RDD
1, R和Python中都有DataFrame,Spark中的DataFrame从形式上看最大的不同点是其天生是分布式的;你可以简单的认为Spark中的DataFrame是一个分布式的Table,形式如下所述:
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
2, RDD和DataFrame的根本差异:
a) RDD是以Record为单位的,Spark在优化的时候无法东西Record内部的细节,所以也就无法进行更深度的优化,这极大的限制了Spark SQL性能的提升!
b) DataFrame包含了每个Record的Metadata信息,也就是说DataFrame的优化时基于列内部的优化,而不是像RDD一样只能够基于行进行优化;
三:Spark SQL企业级最佳实践
第一阶段:最开始阶段文件存储,c代码处理
第二阶段:javaEE加数据库,瓶颈数据库不能分布式(扩展性),企业只能处理局部数据,数据过滤然后在放在数据库中。
第三阶段数据局限导致hive,hive 计算能力有限,速递性能问题
第四阶段:hive 转向sparksql+hive,计算能力是一个问题
第五阶段:hive+Spark SQL+dataFrame
第六阶段:hive+ Spark SQL+dataFrame +dataSet
- spark sql和DataFrame本质
- day56-Spark SQL和DataFrame的本质
- Spark SQL和DataFrame的本质
- 解密Spark SQL与DataFrame的本质
- Spark SQL和DataFrame指南
- Spark SQL、DataFrame和Dataset
- 大数据IMF传奇行动绝密课程第56课:揭秘Spark SQL和DataFrame的本质
- Spark Sql和DataFrame指南(部分)
- Spark SQL和DataFrame的学习总结
- Spark Sql,Dataframe和数据集指南
- Spark SQL和DataFrame的学习总结
- spark-SQL的DataFrame和DataSet
- Spark SQL中的DataFrame
- spark sql DataFrame操作
- Spark SQL与DataFrame
- spark sql dataframe操作
- Spark SQL 之 DataFrame
- Spark SQL与DataFrame
- Ubuntu下添加开机启动项的2种方法
- 自动增量_自动升级系统_nsAutoUpdate_NSIS_插件发布
- 关于贪心算法
- 自定义 mvc
- 基础拾遗------特性详解【含常用过滤器实例】
- spark sql和DataFrame本质
- Openjudge NOI题库1.13编程基础之综合应用17:文字排版
- bootstrap 模态框modal 传值问题
- maven javadoc plugin build fails with Java 8 when Javadoc tags are incomplete
- 安装YouCompleteMe
- spark sql on hive配置及其使用
- Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()
- 归并排序算法(php)
- How to get port in FTP protocol from passive mode?