| 作者 |
| 艾叔 |
| 丛书名 |
| 出版社 |
| 机械工业出版社* |
| ISBN |
| 9787111651000 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书是一本讲解Spark基础应用及编程的实用教程,基于 Spark 2.3 版本,内容包括 Spark 与大数据、构建 Spark 运行环境、开发一个Spark 程序、深入理解 Spark 程序代码、RDD 编程、Spark SQL 结构化数据处理、Spark Streaming、Structured Streaming、SparkR和GraphX。本书总结了Spark 学习的关键点;提出了 Spark 快速学习路线图;提供配套的 Spark前置课程学习资源链接,包括虚拟机、Linux 和 Shell 免费高清视频、《零基础快速入门Scala》免费电子书等,帮助零基础读者迅速夯实Spark基础。 本书配以大量的示例、源代码和注释,可以帮助读者快速、全面而又深入地掌握Spark编程技能。 本书既可作为高等院校大数据、云计算和人工智能相关专业的教材,也可以作为Spark学习者和大数据研发人员的技术参考书。 |
| 目录 |
前言 第1章 Spark与大数据1 1.1 大数据开发基础1 1.1.1 什么是大数据1 1.1.2 大数据开发的通用步骤2 1.1.3 大数据开发技术4 1.2 初识Spark10 1.2.1 Spark是什么10 1.2.2 Spark的技术特点11 1.3 Spark技术栈12 1.4 Spark重要组件13 1.4.1 Spark Core13 1.4.2 Spark SQL14 1.4.3 GraphX15 1.4.4 流数据处理16 1.4.5 SparkR17 1.4.6 MLlib/ML18 1.4.7 Spark交互工具18 1.5 Spark和Scala19 1.5.1 Scala语言简介19 1.5.2 为什么用Scala开发Spark框架20 1.5.3 为什么用Scala开发Spark程序20 1.5.4 Scala开发Spark程序所涉及的 技术20 1.5.5 Scala语言基础21 1.6 如何快速掌握Spark21 1.6.1 Spark学习的痛点21 1.6.2 Spark快速学习路线图22 1.6.3 Spark学习中的关键点23 1.6.4 利用本书相关资源高效学习Spark23 1.6.5 本书所使用的软件和版本25 1.7 练习25 第2章 构建Spark运行环境26 2.1 Spark程序运行时架构26 2.2 构建Spark大数据运行环境28 2.2.1 构建HDFS28 2.2.2 构建Yarn30 2.2.3 构建Spark集群31 2.3 运行Spark程序(Local方式)31 2.4 运行Spark程序(分布式方式)32 2.4.1 Spark on Yarn32 2.4.2 Spark on Standalone36 2.5 Spark程序在spark-shell上运行41 2.6 使用Web UI监控Spark程序 运行43 2.7 扩展集群节点48 2.8 练习49 第3章 开发一个Spark程序51 3.1 在命令行模式下开发Spark程序51 3.1.1 构建Scala程序编译环境51 3.1.2 使用Vim编写Spark程序53 3.1.3 使用命令编译、打包Spark程序54 3.1.4 运行Spark程序56 3.1.5 使用java命令运行Spark程序57 3.1.6 Spark程序编译、运行、部署的 关键点58 3.2 使用IDEA开发Spark程序58 3.2.1 IDEA安装和基本使用59 3.2.2 使用IDEA编辑Spark代码60 3.2.3 IDEA编译、打包62 3.2.4 IDEA远程提交Spark程序63 3.3 练习64 第4章 深入理解Spark程序代码66 4.1 Spark程序代码结构66 4.2 Spark程序代码的核心概念68 4.2.1 RDD68 4.2.2 Application68 4.2.3 Job69 4.2.4 DAG70 4.2.5 Stage72 4.2.6 Task76 4.2.7 Application、Job、Stage和Task的 并行粒度和并行条件77 4.3 Spark程序代码执行过程77 4.4 练习85 第5章 RDD编程86 5.1 RDD核心概念86 5.1.1 Transformation的基本概念87 5.1.2 Action的基本概念88 5.1.3 Partition的基本概念88 5.2 创建RDD89 5.2.1 使用parallelize/makeRDD 创建RDD89 5.2.2 使用textFile创建RDD91 5.2.3 其他RDD创建操作92 5.3 RDD Partition93 5.3.1 Partition的基本操作94 5.3.2 Partition的分区过程96 5.3.3 Partition和Task98 5.3.4 计算Partition的个数100 5.3.5 Partition的综合应用103 5.4 Transformation操作107 5.4.1 map操作107 5.4.2 flatMap操作111 5.4.3 mapPartitions操作113 5.4.4 join操作115 5.4.5 union操作120 5.4.6 intersection操作121 5.4.7 groupBy操作123 5.4.8 groupByKey操作124 5.4.9 reduceByKey操作125 5.4.10 aggregateByKey操作127 5.4.11 cogroup操作129 5.5 Action操作130 5.5.1 collect操作130 5.5.2 reduce操作130 5.5.3 fold操作131 5.5.4 aggregate操作133 5.5.5 foreachPartition操作134 5.5.6 saveAsTextFile操作135 5.5.7 saveAsObjectFile操作135 5.6 RDD的cache/persist和 checkpoint操作136 5.6.1 cache/persist和checkpoint概述136 5.6.2 cache/persist使用注意事项137 5.6.3 cache/persist操作138 5.6.4 checkpoint操作139 5.7 练习140 第6章 Spark SQL结构化数据处理142 6.1 Spark SQL的核心概念142 6.1.1 结构化数据和非结构化数据142 6.1.2 DataFrame143 6.1.3 Dataset144 6.1.4 Persistent Table和Data Warehouse145 6.1.5 SQL146 6.1.6 SparkSession147 6.2 Spark SQL数据处理概述147 6.2.1 Spark SQL数据处理环境147 6.2.2 Spark SQL处理结构化数据149 6.2.3 Spark SQL处理不同数据源的 数据150 6.3 构建Spark SQL运行环境150 6.3.1 Spark SQL运行环境概述150 6.3.2 构建最简的Spark SQL运行环境151 6.3.3 构建兼容Hive的Spark SQL运行 环境153 6.4 DataFrame/Dataset快速上手157 6.4.1 DataFrame/Dataset使用概述157 6.4.2 在spark-shell中使用DataFrame/ Dataset157 6.4.3 在代码中使用DataFrame/Dataset161 6.4.4 DataFrame/Dataset使用上的区别163 6.4.5 DataFrame行解析方法164 6.4.6 DataFrame和Dataset转换164 6.5 DataFrame/Dataset与数据源的 转换165 6.5.1 DataFrame/Dataset与数据源的转换 关系和方法概述165 6.5.2 DataFrame/Dataset与Seq的转换167 6.5.3 DataFrame/Dataset与RDD的 转换169 6.5.4 DataFrame/Dataset文件与Sequence 文件的转换170 6.5.5 DataFrame/Dataset与CSV文件的 转换170 6.5.6 DataFrame/Dataset与JSON文件的 |