目录 第1章Spark基础1 1.1初识Spark1 1.1.1Spark概述1 1.1.2Spark的特点2 1.1.3Spark应用场景3 1.1.4Spark与MapReduce的区别3 1.2Spark基本架构及运行流程4 1.2.1基本概念4 1.2.2Spark基本架构5 1.2.3Spark运行流程6 1.3Spark的部署模式7 1.4部署Spark7 1.4.1基于Local模式部署Spark7 1.4.2基于Standalone模式部署Spark9 1.4.3基于High Availability模式部署Spark14 1.4.4基于Spark on YARN模式部署Spark19 1.5Spark初体验20 1.6PySpark的使用22 1.7PyCharm开发Spark程序23 1.8本章小结29 1.9课后习题30 第2章Spark RDD弹性分布式数据集31 2.1RDD简介31 2.2RDD的创建32 2.2.1基于文件创建RDD32 2.2.2基于数据集合创建RDD33 2.3RDD的处理过程34 2.3.1转换算子34 2.3.2行动算子39 2.4RDD的分区42 2.5RDD的依赖关系43 2.6RDD机制44 2.6.1持久化机制44 2.6.2容错机制46 2.7Spark的任务调度46 2.7.1DAG的概念46 2.7.2RDD在Spark中的运行流程48 2.8本章小结49 2.9课后习题49 目录Spark大数据分析与应用(Python版)第3章Spark SQL结构化数据处理模块51 3.1Spark SQL基础知识51 3.1.1Spark SQL简介51 3.1.2Spark SQL架构52 3.2DataFrame基础知识53 3.2.1DataFrame简介53 3.2.2DataFrame的创建54 3.2.3DataFrame的常用操作56 3.2.4DataFrame的函数操作60 3.3RDD转换为DataFrame70 3.3.1反射机制推断Schema70 3.3.2编程方式定义Schema72 3.4Spark SQL操作数据源73 3.4.1Spark SQL操作MySQL73 3.4.2Spark SQL操作Hive76 3.5本章小结78 3.6课后习题79 第4章Spark Streaming实时计算框架80 4.1实时计算概述80 4.2Spark Streaming概述81 4.2.1Spark Streaming简介81 4.2.2Spark Streaming的工作原理83 4.3Spark Streaming的DStream83 4.4Spark Streaming的编程模型84 4.5Spark Streaming的API操作85 4.5.1输入操作85 4.5.2转换操作88 4.5.3输出操作97 4.5.4窗口操作100 4.5.5案例——电商网站实时热门品类统计104 4.6本章小结107 4.7课后习题107 第5章Kafka分布式发布订阅消息系统109 5.1消息队列简介109 5.2Kafka简介112 5.3Kafka工作原理113 5.3.1Kafka的基本架构113 5.3.2Kafka工作流程115 5.4搭建Kafka集群116 5.5Kafka的基本操作119 5.5.1Kafka的Shell操作119 5.5.2Kafka的Python API操作123 5.6案例——实时单词计数125 5.7本章小结128 5.8课后习题128 第6章Structured Streaming流计算引擎130 6.1Spark Streaming的不足130 6.2Structured Streaming概述131 6.2.1Structured Streaming简介131 6.2.2Structured Streaming编程模型132 6.3Structured Streaming的API操作133 6.3.1输入操作133 6.3.2转换操作137 6.3.3输出操作140 6.4时间和窗口操作146 6.4.1时间的分类146 6.4.2窗口操作147 6.5案例——物联网设备数据分析151 6.5.1准备数据151 6.5.2分析数据154 6.6本章小结158 6.7课后习题158 第7章Spark MLlib机器学习库160 7.1初识机器学习160 7.1.1什么是机器学习160 7.1.2机器学习的应用161 7.2Spark MLlib概述162 7.2.1Spark MLlib简介162 7.2.2Spark MLlib工作流程162 7.3数据类型164 7.4Spark MLlib基本统计167 7.4.1摘要统计167 7.4.2相关统计168 7.4.3分层抽样170 7.5分类171 7.5.1线性支持向量机171 7.5.2逻辑回归173 7.6案例——构建电影推荐系统175 7.6.1案例分析176 7.6.2案例实现177 7.7本章小结179 7.8课后习题180 第8章综合案例——在线教育学生学习情况分析系统181 8.1系统概述181 8.1.1系统背景介绍181 8.1.2系统流程分析182 8.2Redis的安装和启动183 8.3模块开发——构建项目结构185 8.4模块开发——在线教育数据的生成185 8.4.1模拟生成数据185 8.4.2向Kafka发送数据188 8.5模块开发——实时分析学生答题情况190 8.6模块开发——实时推荐题目193 8.7模块开发——离线分析学生答题情况200 8.8模块开发——数据可视化203 8.8.1安装、启动与配置FineBI203 8.8.2实现数据可视化212 8.9本章小结223