编辑推荐
null
内容简介
Spark SQL是 Spark大数据框架的一部分,支持使用标准SQL查询和HiveQL来读写数据,可用于结构化数据处理,并可以执行类似SQL的Spark数据查询,有助于开发人员更快地创建和运行Spark程序。全书分为4篇,共9章,第一篇讲解了Spark SQL 发展历史和开发环境搭建。第二篇讲解了Spark SQL 实例,使得读者掌握Spark SQL的入门操作,了解Spark RDD、Datadata-xss和DataSet,并熟悉 Datadata-xss 各种操作。第三篇讲解了基于WiFi探针的商业大数据分析项目,实例中包含数据采集、预处理、存储、利用Spark SQL 挖掘数据,一步一步带领读者学习Spark SQL强大的数据挖掘功能。第四篇讲解了Spark SQL 优化的知识。本书适合Spark初学者、Spark数据分析人员以及Spark程序开发人员,也适合高校和培训学校相关专业的师生教学参考。
作者介绍
纪 涵,数据挖掘、云计算爱好者,曾负责多个中小型网站的开发维护工作,曾参与开发设计多款面向校园服务的App,参与开发设计过多个基于Hadoop、Spark平台的大数据应用,有着丰富的流数据、结构化数据处理经验,现主要研究方向为机器学习、数据挖掘。
目 录
第一部分 入门篇 第1章 初识Spark SQL 3 1.1Spark SQL的前世今生 3 1.2Spark SQL能做什么 4 第2章 Spark安装、编程环境搭建以及打包提交 6 2.1Spark的简易安装 6 2.2 准备编写Spark应用程序的IDEA环境 10 2.3 将编写好的Spark应用程序打包成jar提交到Spark上 18 第二部分 基础篇 第3章 Spark上的RDD编程 23 3.1RDD基础 24 3.1.1创建RDD 24 3.1.2RDD转化操作、行动操作 24 3.1.3惰性求值 25 3.1.4RDD缓存概述 26 3.1.5RDD基本编程步骤 26 3.2RDD简单实例—wordcount 27 3.3 创建RDD 28 3.3.1程序内部数据作为数据源 28 3.3.2外部数据源 29 3.4RDD操作 33 3.4.1转化操作 34 3.4.2行动操作 37 3.4.3惰性求值 38 3.5 向Spark传递函数 39 3.5.1传入匿名函数 39 3.5.2传入静态方法和传入方法的引用 40 3.5.3闭包的理解 41 3.5.4关于向Spark传递函数与闭包的总结 42 3.6 常见的转化操作和行动操作42 3.6.1基本RDD转化操作 43 3.6.2基本RDD行动操作 48 3.6.3键值对RDD 52 3.6.4不同类型RDD之间的转换 56 3.7 深入理解RDD 57 3.8RDD 缓存、持久化 59 3.8.1RDD缓存 59 3.8.2RDD持久化 61 3.8.3持久化存储等级选取策略 63 3.9RDD checkpoint容错机制 64 第4章 Spark SQL编程入门 66 4.1Spark SQL概述 66 4.1.1Spark SQL是什么 66 4.1.2Spark SQL通过什么来实现 66 4.1.3Spark SQL 处理数据的优势 67 4.1.4Spark SQL数据核心抽象——Datadata-xss 67 4.2 SparkSQL编程入门示例 69 4.2.1程序主入口:SparkSession 69 4.2.2创建 Datadata-xss 70 4.2.3Datadata-xss基本操作 70 4.2.4执行SQL查询 72 4.2.5全局临时表 73 4.2.6Dataset 73 4.2.7将RDDs转化为Datadata-xss 75 4.2.8用户自定义函数 78 第5章 Spark SQL的Datadata-xss操作大全 82 5.1 由JSON文件生成所需的Datadata-xss对象 82 5.2Datadata-xss上的行动操作 84 5.3Datadata-xss上的转化操作 91 5.3.1where条件相关 92 5.3.2查询指定列 94 5.3.3思维开拓:Column的巧妙应用 99 5.3.4limit操作 102 5.3.5排序操作:order by和sort 103 5.3.6group by操作 106 5.3.7distinct、dropDuplicates去重操作 107 5.3.8聚合操作 109 5.3.9union合并操作 110 5.3.10join操作 111 5.3.11获取指定字段统计信息 114 5.3.12获取两个Datadata-xss中共有的记录 116 5.3.13获取一个Datadata-xss中有另一个Datadata-xss中没有的记录 116 5.3.14操作字段名 117 5.3.15处理空值列 118 第6章 Spark SQL支持的多种数据源 121 6.1 概述 121 6.1.1通用load/save 函数 121 6.1.2手动指定选项 123 6.1.3在文件上直接进行SQL查询 123 6.1.4存储模式 123 6.1.5持久化到表 124 6.1.6bucket、排序、分区操作 124 6.2 典型结构化数据源 125 6.2.1Parquet 文件 125 6.2.2JSON 数据集 129 6.2.3Hive表 130 6.2.4其他数据库中的数据表 133 第三部分 实践篇 第7章 Spark SQL 工程实战之基于WiFi探针的商业大数据分析技术139 7.1 功能需求 139 7.1.1数据收集 139 7.1.2数据清洗 140 7.1.3客流数据分析 141 7.1.4数据导出 142 7.2 系统架构 142 7.3 功能设计 143 7.4 数据库结构 144 7.5 本章小结 144 第8章 第一个Spark SQL应用程序 145 8.1 完全分布式环境搭建 145 8.1.1Java 环境配置 145 8.1.2Hadoop 安装配置 146 8.1.3Spark安装配置 149 8.2 数据清洗 150 8.3 数据处理流程 153 8.4 Spark程序远程调试 164 8.4.1导出jar包 164 8.4.2IDEA配置 168 8.4.3服务端配置 170 8.5Spark的Web界面 171 8.6 本章小结 172 第四部分 优化篇 第9章 让Spark程序再快一点 175 9.1Spark执行流程 175 9.2Spark内存简介 176 9.3Spark的一些概念 177 9.4Spark编程四大守则 178 9.5Spark调优七式 183 9.6 解决数据倾斜问题 192 9.7Spark 执行引擎 Tungsten 简介 195 9.8Spark SQL解析引擎Catalyst 简介 197 9.9 本章小结 200
媒体评论
null