spark-sql 基础教程

所需积分/C币:35 2018-01-19 17:44:07 674KB PDF
收藏 收藏 2
举报

spark-sql 基础理论教程。详细介绍了spark sql的工作原理。以及hive在spark上如何工作。
八斗大数据培训【】 基础简介 Spark soαL是 Apache Spark大数据框架一部分,主要用于处理结构化数据和对 spark数据执行类 sq的查询 Spark为其提供了一个称为 Data frame的编程抽象,充当分布式SQL查询引擎 Spark SQL功能 集成:无缝将SQL查询与 Spark程序混合 统一数据访问:加载来自各种来源的数据 兼容性: Spark SαL重用Hive前端和 MetaStore,与现有Hive数据、查询和UDF的安全兼容,只需要和Hive一期安 装即可 标准连接:JDBC和ODBC 扩展性:对交互式查询和长査询使用相同的引擎, Spark SQL利用RDD模型来支持查询容错,使其扩展大大型作业 八(斗大数据内部资料,盗版必究 八斗大数据培训【】 框架 Spark SQL框架: 把数据读入到 SparksαL中, SparksαL进行数据处理或算法实现,然后再把处理后的数据输岀到相应的输岀源 Datasource Spark SQL 处理逻辑 Output ② nput 数据源丰富:Hⅳve、json、tx、JDBC等 Spark SQL存在两个类进行对接: Hive Context和 SQLContext,其中 Hive Context继承了 SQLContext的所有方法,同时又进 行扩展 SQLContext用于对接绝大多类型数据源, Hive Context是 SQLContext的超集 Spark SQL处理读入的数据,采用的是 Dataframel中提供的方法 八(斗大数据内部资料,盗版必究 八斗大数据培训【】 作为2014-2015年 Spark最大的AP改动, DataFrame能够使得大数据更为简单 之前 Spark SQL API的 SchemaRDD已经更名为 Data frame 分布式的数据集合,按照命名列的形式组织数据 通过调用将 Data frame的内容作为行RDD( RDD of rows)返回的rdd方法,可以将 Dataframe转换成RDD 通过如下方式创建 Data frame: 已有RDD 结构化数据文件 Json数据 Hive表 外部数据库 八(斗大数据内部资料,盗版必究一一 八斗大数据培训【】 RDD以 record为单位,spak优化时无法洞悉 Frecord内部的细节,无法深度优化,限制 sparkS性能的提升; Dataframe包含了每个 crecord的 metadata元数据信息, Dataframe的 优化可以对列内部优化 · Data frame是一个以命名列方式组织的分布式数据集,等同于关系型数据库中的一个表 Name Age Height Person String Double Person String Int Double P erson string Int Double Person String Double Person String Double Person string Double RDD[Person DataFrame 八(斗大数据内部资料,盗版必究一一 八斗大数据培训【】 DataFrame是基于RDD的抽象 Data frame的底层结构是RDD.Spak在你使用 DataFrame时会优化你的代码 Logica Physica Analysis Code Optimization Planning Generation SQL Query Unresolved selected Optimized LOgical plan Physical Logical Plan Logical Plan Physical RODs Pla DataFrame Catalog Spark对于 Data frame在执行时间和内存使用上对于RDD有极大的优化 Catalyst优化引擎:使得执行时间减少75% Project Tungsten O仟heap内存管理:是内存使用量减少75%,无垃圾回收器 使用 python及 scala执行RDD的速度明显比 Data frame慢 但同样对于 Dataframe,两种语言没有区别,两者性能均优于普通 Python RDD实现的4倍,也达到 了 Scala rdd实现的两倍 八(斗大数据内部资料,盗版必究 八斗大数据培训【 优化引擎 Catalyst SQL优化器核心执行策略两个方向:规则和代价 基于规则:经验式、启发式地优化思路,更多地依靠前辈总结岀来的优化规则,简单易行且能够 覆盖到大部分优化逻辑 SpARser Logical Plan c Ruleexecuto卫 基于代价:核心算子优化 ① generate ②ru1e 两个表执行Jon应该使用 Broadcasthashjoin还是 SortMergeJoin? LP 八(斗大数据内部资料,盗版必究一一 八斗大数据培训【 实现分析 Parser(解析器):Sq| Parser生成 LogicPlan Tree 主要先进行词法分析,再进行语法分析 词法分析:讲输入的sq语句串解析为一个一个的 Itoken ·语法分析:再词法分析基础上,将单词序列组合成各类语法短语,组成各个 LogicIan 例子: Aggregate summ(v) SELECT sum(v) C口e FROMO Project 100+80+score. math score+ SELECT Score. id ScOre,eng⊥ ish score 100+80+score. math score+score. english score AS V Fi1七ey people.id= score.id AND people age>10 FROM people JoIN score WHERE people. id=score. id Join AND people age>10 Scan Scan m people) (score) 八(斗大数据内部资料,盗版必究一一 八斗大数据培训【 实现分析 Analyzer:遍历整个语法树,对树上的每个节点进行数据类型绑定以及函数绑定 根据元数据表解析为包含必要列的表,并且相应字段解析为相应的数据类型,相应的计算逻辑解析为对应的函数 UnresolvedRelation Aggregate sum(v) sum(v) sum《v#50) As sum(v)#57工 score id, Px⊙e=t id#BLr 00+80+score. math score+ ProTect ((cast(100+30) as bigint)+ma-h score#9L+ score.english score english score#7L) AS V#50L peaple. id= score. id Filter (1d#1L=1d#8L) AND people age>10 Filter (age#oL>cast(l0 as bigint)) J9n n Unes⊙1veRe工a七n UnresolvedRe1a七n ReLa七i。n Relation (people) (score) (age#0工,id#1工) (eng1 ist scare#7工,主d#8工, math score特9工) 八(斗大数据内部资料,盗版必究一一

...展开详情
试读 15P spark-sql 基础教程
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
关注 私信 TA的资源
上传资源赚积分,得勋章
最新推荐
spark-sql 基础教程 35积分/C币 立即下载
1/15
spark-sql 基础教程第1页
spark-sql 基础教程第2页
spark-sql 基础教程第3页

试读结束, 可继续读2页

35积分/C币 立即下载 >