一、基础核心题(必问,夯实底层认知)1. Spark的核心组件有哪些?各自的作用是什么?标准答案:Spark核心组件围绕“计算+调度+存储+部署”构建,核心包括:Spark Core:核心计算引擎,提供RDD、任务调度、内存管理、容错机制,是所有组件的基础,我在项目中基于Core实现海量数据的离线批处理,解决过数据倾斜问题;Spark SQL:结构化数据处理模块,支持SQL查询和DataFrame/Dataset API,兼容Hive,我用它做数仓分层建模,替代Hive提升十亿级数据的离线计算效率;Spark Streaming:准实时流处理模块(微批),基于RDD实现秒级数据处理,我在智慧平安小区项目中用它对接Kafka,实现小区动态数据的实时清洗和布控预警;MLlib:机器学习库,提供常用算法,项目中未直接使用,但了解其与Spark Core的集成逻辑;GraphX:图计算库,我在组织部数据中台项目中用它实现关系图谱的复杂分析;Cluster Manager:集群资源管理,支持YARN/Standalone/Mesos,我基于YARN部署Spark集群,做过资源分配调优。2. RDD、DataFrame、Dataset的区别和适用场景?标准答案:三者是Spark不同层级的抽象,核心区别在数据结构、类型安全、优化能力:特性RDDDataFrameDataset数据结构无结构化,仅泛型对象结构化(Schema),列存储结构化+强类型,Schema+泛型类型安全编译时检查运行时检查编译时检查优化能力无(仅RDD算子优化)Catalyst优化器Catalyst优化器适用场景非结构化数据(如文本)、复杂逻辑处理结构化数据批量分析、SQL查询结构化数据+强类型要求、高性能计算实战场景:处理视频图像非结构化数据时用RDD做底层清洗;数仓离线批处理(如Hive数据聚合)用DataFrame,依托Catalyst优化提升查询效率;实时计算中对数据类型要求严格的场景(如指标计算)用Dataset,兼顾类型安全和性能。