《Spark大数据分析与实战》课件项目四 Spark SQL处理结构化学生数据.pptx

《Spark大数据分析与实战》课件项目四 Spark SQL处理结构化学生数据.pptx

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

BigDataAnalyticswithSpark项目四SparkSQL处理结构化学生数据

项目概述SparkSQL是Spark生态中用于处理结构化数据的一个模块,开发人员可以轻松的借助API、SQL语句完成数据分析工作。SparkSQL支持多种数据源,实际开发中经常要读写MySQL数据库及Hive数据仓库,本项目从DataFrame的创建入手,介绍不同的DataFrame的创建方法及DataFrame的各种操作。针对某校的学生信息文件(含学院、姓名、性别、年龄等),使用SparkSQL进行分析,获取分析结果;

项目效果使用SparkSQL可以完成学生信息的分析,提取有价值的信息。例如分学院、性别统计年龄最大、最小值,如下所示:除此之外,还可以实现与SparkSQL与MySQL、Hive的连接。利用SparkSQL技术完成数据分析后,结果可再次写入到MySQL、Hive中,如下所示:

目录任务1初识结构化数据处理工具SparkSQL认识DataFrame、DataSet数据类型由学生信息创建DataFrameSparkSQL分析学生信息(1)任务2任务3任务4SparkSQL分析学生信息(2)任务5任务6SparkSQL分析学生信息(3)

目录任务7SQL语法风格处理学生信息通过JDBC连接MySQL数据库任务9RDD、DataFrame与Dataset的相互转换其他类型数据创建DataFrame任务11SparkSQL读写Hive数据任务8任务10

思维导图

初识结构化数据处理工具SparkSQL任务1SparkSQL是Spark体系中处理结构化数据的有力工具。初步认识SparkSQL,了解其演化历程、特点,并初步体验其使用过程。

早期Hadoop生态体系中,数据处理主要使用MapReduce组件。缺陷:MapReduce学习成本较高、需要较多的Java编程等知识。后续产生了Hive分布式数据仓库,它允许用户使用类似于SQL的语法(HQL)处理结构化数据,极大降低了使用门槛;Hive与Hadoop高度集成,将HQL语言自动换成MapReduce操作,可使用Yarn完成资源调度,最终完成结构化数据的处理任务;因其便捷性,Hive逐渐流行起来,成为搭建分布式数据仓库的主流方案之一。缺陷:其底层基于MapReduce(HQL最终转换为MapReduce操作),而MapReduce的shuffle需要大量的磁盘I/O,因此导致Hive的性能低下,复杂的操作可能运行数个小时,甚至数十个小时。为此,伯克利实验室开发了基于Hive的结构化数据处理组件Shark(SparkSQL的前身)。Shark是Spark上的数据仓库,最初设计成与Hive兼容;Shark在HiveQL方面重用了Hive中的HiveQL解析、逻辑执行计划翻译、执行计划优化等逻辑,但在执行层面将MapReduce作业替换成了Spark作业(把HiveQL翻译成Spark上的RDD操作)。因此与Hive相比,因其使用Spark的基于内存的计算模型,性能得到了极大提升。缺陷:一是执行计划优化完全依赖于Hive,对于其性能进一步提升造成了约束;二是Spark是线程级并行,而MapReduce是进程级并行,Spark在兼容Hive的实现上存在线程安全问题。此外,Shark继承了大量的Hive代码,因此后续优化、维护较为麻烦,特别是基于MapReduce设计的部分,成为整个项目的瓶颈。因此,2014年Shark项目中止,并转向SparkSQL的开发。1.1SparkSQL的产生

早期,SparkSQL引入了SchemaRDD(即带有Schema模式信息的RDD),使用户可以在SparkSQL中执行SQL语句,数据既可以来自RDD,也可来自Hive、HDFS、Cassandra等外部数据源,还可以是JSON、Parquest、CSV等格式的数据。开发语言方面,SparkSQL支持Scala、Java、Python等语言,支持SQL-92规范。从Spark1.2升级到Spark1.3以后,SparkSQL中的SchemaRDD改为DataFrame,DataFrame相对于SchemaRDD有了较大改变,同时提供了更多便捷的API。SparkSQL可以使用JDBC、ODBC等标准数据库连接器,友好的支持各种SQL查询;这样其他第三方工具,如部分商业智能工具(PowerBI、Tableau等)可以接入Spark,借助Spark的强大计算能力完成大规模数据的处理。1.2SparkSQL的特点

在早期的Spark1.X版本中,Spark结构化数据处理的入口为SQLConte

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档