![]()
内容推荐 本书介绍了Spark应用程序及更高级应用的工作流程,主要从使用角度进行了描述,每个具体内容都有对应的代码。本书涵盖了Apache Spark和它丰富的API,构成Spark的组件(包括Spark SQL、Spark Streaming、Spark MLlib和Spark GraphX),在Spark standalone、 Hadoop YARN以及 Mesos clusters上运行Spark应用程序的部署和安装。通过对应的实例全面、详细地介绍了整个Spark实战开发的流程。最后,还介绍了Spark的高级应用,包括Spark流应用程序及可扩展和快速的机器学习框架H2O。 本书可以作为高等院校计算机、软件工程、数据科学与大数据技术等专业的大数据课程材料,可用于指导Spark编程实践,也可供相关技术人员参考使用。 目录 译者序 致谢 前言 关于本书 关于作者 关于封面 第1部分 第1步 第1章 Apache Spark介绍 1.1 什么是Spark 1.1.1 Spark革命 1.1.2 MapReduce的缺点 1.1.3 Spark带来了什么有价值的东西 1.2 Spark组件 1.2.1 Spark核心 1.2.2 Spark SQL 1.2.3 Spark Streaming 1.2.4 Spark MLlib 1.2.5 Spark GraphX 1.3 Spark程序流 1.4 Spark生态系统 1.5 建立spark-in-action虚拟机 1.5.1 下载启动虚拟机 1.5.2 停止虚拟机 1.6 总结 第2章 Spark基础 2.1 使用spark-in-action虚拟机 2.1.1 复制Spark in Action GitHub存储库 2.1.2 找到java 2.1.3 用虚拟机的Hadoop安装 2.1.4 检查虚拟机的Spark安装 2.2 用Spark shell(壳)编写第一个Spark程序 2.2.1 启动Spark shell 2.2.2 第一个Spark代码示例 2.2.3 弹性分布式数据集的概念 2.3 基础RDD行为和转换 2.3.1 使用用map转换 2.3.2 使用distinct和flatMap转换 2.3.3 使用sample、take和takeSample操作获取RDD的元素 2.4 Double RDD功能 2.4.1 Double RDD基本统计 2.4.2 使用直方图可视化数据分布 2.4.3 近似求和与平均值 2.5 总结 第3章 编写Spark应用程序 3.1 在Eclipse上生成一个新的Spark项目 3.2 开发应用程序 3.2.1 准备 GitHub档案数据 3.2.2 加载 JSON 3.2.3 从Eclipse运行应用 3.2.4 数据汇总 3.2.5 排除非公司员工 3.2.6 广播变量 3.2.7 使用整个数据集 3.3 提交应用程序 3.3.1 建立uberjar 3.3.2 调整应用程序 3.3.3 使用spark-submit 3.4 总结 第4章 深入Spark API 4.1 使用键值对RDD 4.1.1 创建键值对RDD 4.1.2 键值对RDD的基本功能 4.2 了解数据分区和减少数据混排 4.2.1 使用spark数据分区器 4.2.2 了解和避免不必要的数据混排 4.2.3 RDD重新分区 4.2.4 在分区中映射数据 4.3 连接、排序、分组数据 4.3.1 连接数据 4.3.2 数据排序 4.3.3 数据分组 4.4 理解RDD依赖 4.4.1 RDD依赖和Spark执行 4.4.2 Spark阶段和任务 4.4.3 使用检查点保存Spark谱系 4.5 使用累加器和广播变量与spark执行器进行沟通 4.5.1 使用累加器从执行器获取数据 4.5.2 使用广播变量将数据发送数据到执行器 4.6 总结 第2部分 认识Spark家族 第5章 Spark SQL查询 5.1 使用DataFrames 5.1.1 从RDD创建DataFrames 5.1.2 DataFrame API 基础知识 5.1.3 用SQL函数执行数据计算 5.1.4 使用缺失值 5.1.5 将DataFrames转换为RDD 5.1.6 分组和连接数据 5.1.7 执行连接 5.2 超越DataFrames:引入DataSet 5.3 使用SQL命令 5.3.1 表目录和Hive metastore 5.3.2 执行SQL查询 5.3.3 通过Thrift服务器连接到Spark SQL 5.4 保存并加载DataFrame数据 5.4.1 内置数据源 5.4.2 保存数据 5.4.3 加载数据 5.5 Catalyst优化器 5.6 Tungsten性能改进 5.7 总结 第6章 使用Spark Streaming提取数据 6.1 编写Spark Streaming应用程序 6.1.1 介绍示例程序 6.1.2 创建流上下文 6.1.3 创建离散流 6.1.4 使用离散流 6.1.5 把结果保存到文档 6.1.6 启动和停止流计算 6.1.7 随着保存计算状态 6.1.8 使用窗口操作进行限制计算 6.1.9 检查其他内置输入流 6.2 使用外部数据源 6.2.1 设置kafka 6.2.2 使用kafka更改流应用程序 6.3 Spark Streaming任务的性能 6.3.1 获得良好的性能 6.3.2 实现容错 6.4 结构化流 6.4.1 创建流式DataFrame 6.4.2 输出流数据 6.4.3 检查流执行 6.4.4 结构化流的未来方向 6.5 总结 第7章 使用MLlib变聪明 7.1 机器学习简介 7.1.1 机器学习的定义 7.1.2 机器学习算法分类 7.1.3 使用Spark进行机器学习 7.2 Spark中的线性代数 7.2.1 本地向量与矩阵实现 7.2.2 分布式矩阵 7.3 线性回归 7.3.1 有关线性回归 7.3.2 简单的线性回归 7.3.3 将模型扩展到多元线性回归 7.4 分析和准备数据 7.4.1 分析数据分布 7.4.2 分析列余弦相似性 7.4.3 协方差矩阵的计算 7.4 |