第1章Spark生态环境/1 1.1平台设计1 1.2Spark简介5 1.2.1技术特性6 1.2.2数据格式9 1.2.3编程语言12 1.3虚拟环境18 1.3.1发展历史19 1.3.2技术特征20 1.3.3技术架构21 1.3.4管理命令24 1.4HBase技术30 1.4.1系统架构31 1.4.2存储机制33 1.4.3常用命令35 1.5环境部署46 1.6小结46 第2章理解Spark/47 2.1数据处理48 2.1.1MapReduce48 2.1.2工作机制51 2.2认识RDD54 2.3操作RDD57 2.3.1转换57 2.3.2动作62 2.4Scala编程66 2.4.1面向对象编程66 2.4.2函数式编程83 2.4.3集合类88 2.5案例分析96 2.5.1启动交换界面97 2.5.2SparkContext和 SparkSession98 2.5.3加载数据99 2.5.4应用操作100 2.5.5缓存处理103 2.6小结106 第3章键值对与分区/107 3.1键值对RDD107 3.1.1创建108 3.1.2转换111 3.1.3动作123 3.2分区和洗牌124 3.2.1分区125 3.2.2洗牌131 3.3共享变量133 3.3.1广播变量133 3.3.2累加器136 3.4Scala高级语法139 3.4.1高阶函数139 3.4.2泛型类145 3.4.3隐式转换150 3.5案例分析152 3.5.1检查事件数据153 3.5.2reduceByKey和 groupByKey155 3.5.3三种连接转换159 3.5.4执行几个动作161 3.5.5跨节点分区162 3.6小结164 第4章关系型数据处理/166 4.1Spark SQL概述167 4.1.1Catalyst优化器168 4.1.2DataFrame与 DataSet169 4.1.3创建结构化数据171 4.2结构化数据操作181 4.2.1选取列182 4.2.2选择语句(select、 selectExpr)184 4.2.3操作列(withColumn、 withColumnRenamed、 drop)186 4.2.4条件语句(where、 filter)187 4.2.5去除重复(distinct、 dropDuplicates)189 4.2.6排序语句(sort、 orderBy)190 4.2.7操作多表(union、 join)191 4.2.8聚合操作198 4.2.9用户定义函数202 4.3案例分析204 4.3.1创建DataFrame 204 4.3.2操作DataFrame 209 4.3.3按年份组合211 4.4小结213 第5章数据流的操作/214 5.1处理范例215 5.1.1至少一次215 5.1.2最多一次216 5.1.3恰好一次216 5.2理解时间218 5.3离散化流219 5.3.1一个例子220 5.3.2StreamingContext 222 5.3.3输入流223 5.4离散流的操作228 5.4.1基本操作229 5.4.2transform230 5.4.3连接操作232 5.4.4SQL操作232 5.4.5输出操作233 5.4.6窗口操作235 5.4.7有状态转换237 5.5结构化流242 5.5.1一个例子242 5.5.2工作机制245 5.5.3窗口操作251 5.6案例分析255 5.6.1探索数据256 5.6.2创建数据流260 5.6.3转换操作267 5.6.4窗口操作268 5.7小结271 〖1〗Spark大数据处理与分析目录〖3〗〖3〗第6章分布式的图处理/272 6.1理解图的概念272 6.2图并行系统276 6.3一个例子279 6.4创建和探索图283 6.4.1属性图284 6.4.2构建器287 6.4.3创建图288 6.4.4探索图296 6.5图运算符298 6.5.1属性运算符300 6.5.2结构运算符301 6.5.3联结运算符305 6.5.4点和边操作311 6.5.5收集相邻信息314 6.6Pregel317 6.6.1一个例子318 6.6.2Pregel运算符320 6.6.3标签传播算法321 6.6.4PageRank算法322 6.7案例分析325 6.7.1定义点326 6.7.2定义边328 6.7.3创建图329 6.7.4PageRank331 6.7.5Pregel332 6.8小结334 第7章机器学习/335 7.1MLlib335 7.2数据类型336 7.2.1局部向量336 7.2.2标签向量337 7.2.3局部矩阵338 7.2.4分布矩阵340 7.3统计基础344 7.3.1相关分析344 7.3.2假设检验346 7.3.3摘要统计347 7.4算法概述348 7.4.1有监督学习349 7.4.2无监督学习350 7.4.3多种算法介绍351 7.4.4协同过滤353 7.5交叉验证354 7.6机器学习管道355 7.6.1概念介绍356 7.6.2Spark管道357 7.6.3模型选择364 7.7实例分析371 7.7.1预测用户偏好371 7.7.2分析飞行延误377 7.8小结384 第8章特征工程/385 8.1特征提取385 8.1.1TFIDF385 8.1.2Word2Vec388 8.1.3CountVectorizer 390 8.2特征转换392 8.2.1Tokenizer392 8.2.2StopWordsRemover 394 8.2.3ngram395 8.2.4Binarizer396 8.2.5PCA396 8.2.6PolynomialExpansion 397 8.2.7Discrete Cosine Transform398 8.2.8StringIndexer400 8.2.9IndexToString402 8.2.10OneHotEncoder 405 8.2.11VectorIndexer406 8.2.12Interaction408 8.2.13Normalizer411 8.2.14StandardScaler 413 8.2.15MinMaxScaler415 8.2.16MaxAbsScaler417 8.2.17Bucketizer418 8.2.18ElementwiseProduct 419 8.2.19SQLTransformer 420 8.2.20VectorAssembler 421 8.2.21QuantileDiscretizer 423 8.2.22Imputer424 8.3特征选择426 8.3.1VectorSlicer426 8.3.2RFormula428 8.3.3ChiSqSelector430 8.4局部敏感哈希433 8.4.1局部敏感哈希 操作433 8.4.2局部敏感哈希 算法434 8.5小结439 第9章算法汇总/440 9.1决策树和集成树440 9.1.1决策树440 9.1.2集成树447 9.2分类和回归461 9.2.1线性方法462 9.2.2分类463 9.2.3回归487 9.3聚集505 9.3.1K均值505 9.3.2潜在狄利克雷 分配506 9.3.3二分K均值509 9.3.4高斯混合模型510 9.4小结512第10章Spark应用程序/513 10.1SparkContext与 SparkSession513 10.2构建应用519 10.3部署应用527 10.3.1集群架构531 10.3.2集群管理534 10.4小结542 第11章监视和优化/543 11.1工作原理543 11.1.1依赖关系544 11.1.2划分阶段547 11.1.3实例分析548 11.2洗牌机制553 11.3内存管理555 11.4优化策略558 11.4.1数据序列化558 11.4.2内存调优559 11.4.3其他方面561 11.5最佳实践563 11.5.1系统配置563 11.5.2程序调优569 11.6案例分析576 11.6.1执行模型576 11.6.2监控界面578 11.6.3调试优化583 11.7小结585 参考文献/586