注:本教程由不清不慎发布于实验楼,版权归原作者所有。
Spark SQL 是 Spark 的一个结构化数据处理模块,提供了一个 DataFrame 的抽象模型,在 Spark 1.6.0之后,又加入了 DataSet 的抽象模型,因此它是一个分布式 SQL 查询引擎,Spark SQL 主要由 Catalyst 优化,Spark SQL 内核,Hive 支持三部分组成。
Spark SQL的架构是什么样的?
如上所示,虽然有点复杂,但是并不影响我们的学习,下面简单概述一下其架构原理:
使用 SqlParser 对 SQL 语句进行解析,生成 Unresolved 逻辑计划(没有提取 schema 信息)。
使用 Catalyst 分析器,结合数据字典(catalog)进行绑定,生成Analyzed逻辑计划,在此过程中,Schema Catalog 则要提取 schema 信息。
使用 Catalyst 优化器对 Analyzed 逻辑计划进行优化,按照优化规则得到 Optimized 逻辑计划。
接着和 Spark Planner 交互,使用相应的策略将逻辑计划转换为物理计划,然后调用 next 函数,生成可执行物理计划。
调用 toDF,最后生成 DataFrame。
Spark SQL有哪些优点?
兼容多种数据格式,如上面所说的parquet文件,HIve表,JSON文件等等。
方便扩展,它的优化器,解析器都可以重新定义。
性能优化方面:采用了内存列式存储,动态字节码生成等技术,还采用了内存缓存数据。
支持多种语言操作,包括java,scala,python,R语言等。
本教程主要从入门讲解 Spark SQL 的使用,最后通过实战案例来巩固之前所学的知识,达到深入浅出,融会贯通的教学目标。对于 Hive 会从入门带大家学习,SpringBoot 框架也会教大家搭建,在最后,会通过讲解NLP基础知识,并且使用实战案例对影评信息进行情感分析。
通过本教程的学习,你将收货如下知识点:
Spark Core 编程
Hive 基础知识
Mysql 的读写
SpringBoot 框架的使用
可视化工具 Echarts 和 d3-Cloud
数据挖掘基础
NLP 中文分词
对于了解Java或者Scala等知识的同学,基本可以无障碍学习本教程了。完整的教程学习,大家可以登录PC端shiyanlou.com,搜索关键词“Spark SQL”进行学习。您也可以点击文末“阅读原文”进一步预览教程。
今日推荐
点击图片查看详情
备受好评的楼+课《机器学习实战》
今晚开课!快来做最后一波冲刺吧
请加助教小姐姐微信(sylmm002)咨询