# SUMMARY * [简介](./README.md) * [开篇词 | 入门Spark,你需要学会“三步走”](./docs/415208.md) * [01|Spark:从“大数据的Hello World”开始](./docs/415209.md) * [02 | RDD与编程模型:延迟计算是怎么回事?](./docs/417164.md) * [03 | RDD常用算子(一):RDD内部的数据转换](./docs/418079.md) * [04 | 进程模型与分布式部署:分布式计算是怎么回事?](./docs/419200.md) * [05 | 调度系统:如何把握分布式计算的精髓?](./docs/420078.md) * [06 | Shuffle管理:为什么Shuffle是性能瓶颈?](./docs/420399.md) * [07 | RDD常用算子(二):Spark如何实现数据聚合?](./docs/421566.md) * [08 | 内存管理:Spark如何使用内存?](./docs/422400.md) * [09 | RDD常用算子(三):数据的准备、重分布与持久化](./docs/423131.md) * [10 | 广播变量 & 累加器:共享变量是用来做什么的?](./docs/423878.md) * [11 | 存储系统:数据到底都存哪儿了?](./docs/424203.md) * [12 | 基础配置详解:哪些参数会影响应用程序稳定性?](./docs/424337.md) * [13 | Spark SQL:让我们从“小汽车摇号分析”开始](./docs/424550.md) * [14 | 台前幕后:DataFrame与Spark SQL的由来](./docs/425322.md) * [15 | 数据源与数据格式:DataFrame从何而来?](./docs/426101.md) * [16 | 数据转换:如何在DataFrame之上做数据处理?](./docs/426789.md) * [17 | 数据关联:不同的关联形式与实现机制该怎么选?](./docs/427470.md) * [18 | 数据关联优化:都有哪些Join策略,开发者该如何取舍?](./docs/428259.md) * [19 | 配置项详解:哪些参数会影响应用程序执行性能?](./docs/429113.md) * [20 | Hive + Spark强强联合:分布式数仓的不二之选](./docs/429858.md) * [21|Spark UI(上):如何高效地定位性能问题?](./docs/431450.md) * [22|Spark UI(下):如何高效地定位性能问题?](./docs/432066.md) * [23 | Spark MLlib:从“房价预测”开始](./docs/435583.md) * [24 | 特征工程(上):有哪些常用的特征处理函数?](./docs/436673.md) * [25 | 特征工程(下):有哪些常用的特征处理函数?](./docs/438660.md) * [26 | 模型训练(上):决策树系列算法详解](./docs/440409.md) * [27 | 模型训练(中):回归、分类和聚类算法详解](./docs/442417.md) * [28 | 模型训练(下):协同过滤与频繁项集算法详解](./docs/444259.md) * [29 | Spark MLlib Pipeline:高效开发机器学习应用](./docs/445893.md) * [30|Structured Streaming:从“流动的Word Count”开始](./docs/446691.md) * [31|新一代流处理框架:Batch mode和Continuous mode哪家强?](./docs/447514.md) * [32|Window操作&Watermark:流处理引擎提供了哪些优秀机制?](./docs/450916.md) * [33|流计算中的数据关联:流与流、流与批](./docs/455491.md) * [34|Spark + Kafka:流计算中的“万金油”](./docs/460492.md) * [用户故事 | 小王:保持空杯心态,不做井底之蛙](./docs/433245.md) * [结束语 | 进入时间裂缝,持续学习](./docs/461706.md) * [期末测试|来赴一场100分之约!](./docs/461793.md)