第1章 开始使用Apache Spark 1
1.1 简介 1
1.2 使用二进制文件安装Spark 2
1.3 通过Maven构建Spark源码 5
1.4 在Amazon EC2上部署Spark 7
1.5 在集群上以独立模式部署Spark 13
1.6 在集群上使用Mesos部署Spark 18
1.7 在集群上使用YARN部署 19
1.8 使用Tachyon作为堆外存储层 22
第2章 使用Spark开发应用 27
2.1 简介 27
2.2 探索Spark shell 27
2.3 在Eclipse中使用Maven开发Spark应用 29
2.4 在Eclipse中使用SBT开发Spark应用 33
2.5 在Intellij IDEA中使用Maven开发Spark应用 34
2.6 在Intellij IDEA中使用SBT开发Spark应用 36
第3章 外部数据源 38
3.1 简介 38
3.2 从本地文件系统加载数据 39
3.3 从HDFS加载数据 40
3.4 从HDFS加载自定义输入格式的数据 45
3.5 从Amazon S3加载数据 46
3.6 从Apache Cassandra加载数据 49
3.7 从关系型数据库加载数据 54
第4章 Spark SQL 57
4.1 简介 57
4.2 理解Catalyst优化器 60
4.3 创建HiveContext 63
4.4 使用case类生成数据格式 66
4.5 编程指定数据格式 67
4.6 使用Parquet格式载入及存储数据 69
4.7 使用JSON格式载入及存储数据 73
4.8 从关系型数据库载入及存储数据 75
4.9 从任意数据源载入及存储数据 78
第5章 Spark Streaming 80
5.1 简介 80
5.2 使用Streaming统计字数 82
5.3 Twitter流数据处理 84
5.4 Kafka流数据处理 88
第6章 机器学习——MLlib 94
6.1 简介 94
6.2 创建向量 95
6.3 创建向量标签 97
6.4 创建矩阵 99
6.5 计算概述统计量 101
6.6 计算相关性 102
6.7 进行假设检验 104
6.8 使用ML创建机器学习流水线 106
第7章 监督学习之回归——MLlib 109
7.1 简介 109
7.2 使用线性回归 110
7.3 理解代价函数 112
7.4 使用Lasso线性回归 116
7.5 使用岭回归 117
第8章 监督学习之分类——MLlib 119
8.1 简介 119
8.2 逻辑回归分类 119
8.3 支持向量机二元分类 124
8.4 决策树分类 127
8.5 随机森林分类 134
8.6 梯度提升树(GBTs)分类 139
8.7 朴素贝叶斯分类 140
第9章 无监督学习——MLlib 143
9.1 简介 143
9.2 使用k-means聚类 144
9.3 主成分分析的降维 149
9.4 奇异值分解降维 155
第10章 推荐系统 159
10.1 简介 159
10.2 显性反馈的协同过滤 161
10.3 隐性反馈的协同过滤 164
第11章 图像处理——GraphX 169
11.1 简介 169
11.2 基本图像运算 170
11.3 使用PageRank 171
11.4 查找连通分量 174
11.5 相邻聚合实现 177
第12章 优化及调优 180
12.1 简介 180
12.2 内存优化 183
12.3 使用压缩提升性能 185
12.4 使用序列化提升性能 186
12.5 优化垃圾回收 187
12.6 优化并行度的级别 187
12.7 理解未来的优化——Tungsten项目 188