Spark Developer 练习题 — Spark开发工程师 - 助理级

1. 题库联网,会自动更新,无需重新获取;

2. 激活题库立即做题,支持网站、小程序同时做题,每题双语一键切换;

3. 包含在线练习,模拟测试,笔记、错题记录等功能,有效期一年;

4. 建议做题顺序:开背题模式看题➡️顺序练习做题➡️模拟考试 考前自测

5. 激活码可点击右侧 立即购买,或通过天猫旗舰店购买;

6. 有问题可通过小程序、微信、WhatsApp、LINE 联系客服。

考试信息

题目数量: 45道计分题+少量不计分调研题(不标注)

考试时长: 90分钟(含非计分题目作答时间)

考试费用: 200美元+各地税费(每次重考均需支付全额费用)

可用语种: 仅英语,代码语言可选Python或Scala(两种语言考题几乎完全相同)

考试形式: Kryterion远程在线监考或授权考点线下考试,全程摄像头监控

题型: 全部为场景式单选题,侧重Spark API应用与问题解决能力

合格标准: 官方未公布固定分数线,行业参考合格线约65%-70%(答对约30-32题)

出分规则: 考完即时显示通过/不通过;24小时内可在Databricks账号下载电子证书

重考规则: 无强制等待期,但建议失败后间隔2周再重考,无重考次数限制,每次均需付费

代码语言: 可选择Python或Scala,考题代码片段与两种语言对应,功能完全一致


结果解读:仅显示通过/未通过,不提供具体得分;可查看各领域表现反馈

样题

Spark Developer · Q1
问题#1 以下哪项描述了 Spark 驱动程序?
  • A.
    Spark 驱动程序负责执行所有执行模式下的所有操作——它就是整个 Spark 应用程序。
  • B.
    备用驱动程序具有容错能力——如果它发生故障,它将恢复整个 Spark 应用程序。
  • C.
    Spark 驱动程序是 Spark 执行层次结构中最粗略的级别——它与 Spark 应用程序同义。
  • D.
    Spark 驱动程序是 Spark 应用程序主方法运行的程序空间,用于协调 Spark 的整个应用程序。
  • E.
    Spark 驱动程序可水平扩展,以提高 Spark 应用程序的整体处理吞吐量。

答案: D

本题考查Spark核心组件中驱动程序的基础定义,属于Apache Spark Associate Developer认证的入门必考知识点。正确答案为D,该选项完全匹配Spark官方对驱动程序的定义:Spark驱动程序是运行Spark应用主方法的进程空间,负责创建SparkSession或SparkContext实例,解析用户编写的应用逻辑生成作业、划分调度阶段、生成具体任务并分配给执行器节点执行,同时监控所有任务的运行状态,协调Spark应用的全生命周期运行,完全符合题目对驱动程序描述的要求。 各选项分析: A. 错误。Spark应用由驱动程序和多个执行器(Executor)进程共同组成,具体的并行计算任务由执行器执行,驱动仅负责协调调度,并不执行所有操作,也不等同于整个Spark应用。 B. 错误。默认情况下Spark驱动程序是单点故障点,发生故障后整个应用直接终止,即便配置了集群管理器的高可用机制,备用驱动也无法恢复所有应用状态,该描述不符合驱动程序的基础特性。 C. 错误。Spark执行层次结构中最粗略的级别是Spark应用本身,Spark应用包含驱动程序、执行器等多个组件,二者并不等同。 D. 正确。该选项完全符合Spark官方对驱动程序的定义:驱动程序是Spark应用主方法运行的进程,负责整个Spark应用的逻辑解析、任务调度与运行协调。 E. 错误。Spark驱动程序为单个进程,仅支持垂直扩展(提升单节点CPU、内存配置),无法水平扩展,Spark应用的处理吞吐量提升依赖执行器节点的水平扩容。 关键知识点: 1. Spark驱动程序核心职责:运行Spark应用的主函数,创建SparkSession或SparkContext,负责作业解析、阶段划分、任务调度与应用全生命周期的协调监控。 2. Spark应用组成结构:一个完整的Spark应用由1个驱动进程、N个执行器进程共同组成,驱动负责调度管理,执行器负责具体的并行任务计算。 3. Spark驱动扩展特性:驱动程序默认单实例运行,不可水平扩展,仅可通过提升单节点配置实现垂直扩展,应用整体并行处理能力的扩容依赖执行器节点数量的增加。 参考资料: Apache Spark 官方文档 集群模式概述, https://spark.apache.org/docs/latest/cluster-overview.html Databricks 官方文档 集群核心概念
Spark Developer · Q2
问题#2 以下哪项描述了节点和执行器之间的关系?
  • A.
    执行器和节点无关。
  • B.
    Anode 是运行在执行器上的处理引擎。
  • C.
    执行器是在节点上运行的处理引擎。
  • D.
    执行器和节点的数量始终相同。
  • E.
    节点数总是多于执行器数。

答案: C

本题是Apache Spark认证考试中集群架构模块的基础考点,考察考生对Spark核心组件间关系的掌握程度。Spark集群中的节点指的是集群内的物理或虚拟服务器资源,其中承担计算任务的为工作节点,执行器是Spark应用提交后启动的、运行在工作节点上的JVM进程,负责执行具体的计算任务、缓存应用数据,是实际处理数据的引擎,选项C准确描述了二者的从属与功能关系,符合题目要求。 各选项分析: A. 错误,执行器必须运行在集群的工作节点之上,二者是运行载体和运行进程的对应关系,存在强关联,并非无关。 B. 错误,该选项颠倒了节点和执行器的从属关系,节点是承载执行器的资源实体,不存在节点运行在执行器上的逻辑。 C. 正确,执行器是运行在工作节点上的处理进程,承担任务执行、数据存储等核心处理功能,准确描述了二者的关系。 D. 错误,用户可通过Spark配置参数指定单个工作节点上运行的执行器数量,一个节点可以同时运行多个执行器,因此二者数量并不始终相同。 E. 错误,当配置单个工作节点运行多个执行器时,集群总执行器数量会大于节点数量,因此节点数并非总是多于执行器数。 关键知识点: 1. Spark集群核心组件构成:Spark集群由驱动节点、工作节点两类核心节点组成,工作节点是集群中的资源实体,负责为Spark应用提供计算资源、承载执行器运行。 2. 执行器核心特性:执行器是运行在工作节点上的JVM进程,每个Spark应用独占专属的执行器实例,负责执行驱动分配的任务、缓存应用数据,生命周期与所属Spark应用保持一致。 3. 节点与执行器的数量规则:单个工作节点可根据CPU、内存等资源配置运行1个或多个执行器,二者没有固定的大小对应关系。 参考资料: 1. Apache Spark 官方集群模式概述, https://spark.apache.org/docs/latest/cluster-overview.html 2. Databricks Spark 核心概念文档
Spark Developer · Q3
问题#3 如果空缺数量多于任务数量,下列哪种情况会发生?
  • A.
    Spark 作业可能无法以最佳效率运行。
  • B.
    Spark 应用程序将会失败——任务数量必须至少与槽位数量一样多。
  • C.
    部分执行器将关闭,并将所有槽位优先分配给更大的执行器。
  • D.
    系统将自动生成更多任务,以确保所有空位都被利用。
  • E.
    Spark 作业将只使用一个槽位来执行所有任务。

答案: A

Spark中的槽位通常对应执行器的CPU核心,默认每个任务占用1个槽位运行,同一时间可并行运行的任务数上限为总槽位数。当空缺槽位多于任务数量时,说明当前可用的并行计算资源大于作业实际需要的并行任务量,会有部分槽位处于闲置状态未被充分利用,因此作业无法达到最佳运行效率,符合选项A的描述。 各选项分析: A. 正确。槽位多于任务数时会出现计算资源闲置,无法将所有分配的资源用于作业执行,因此作业无法以最佳效率运行,完全符合Spark的资源调度逻辑。 B. 错误。Spark不存在任务数必须至少等于槽位数的规则,任务数少于槽位数时作业可正常运行,仅会出现资源闲置,不会触发应用程序失败。 C. 错误。默认情况下Spark不会自动关闭空闲执行器,只有手动开启动态资源分配功能后才可能回收空闲执行器,且不存在将槽位优先分配给更大执行器的逻辑。 D. 错误。Spark作业的任务数由对应阶段处理的数据集(RDD/DataFrame/Dataset)的分区数决定,系统不会自动生成额外任务填充空闲槽位,要提升资源利用率需手动调整分区数增加并行任务量。 E. 错误。Spark会尽可能并行执行任务,会使用与任务数相等的槽位并行运行任务,不会仅使用1个槽位串行执行所有任务。 关键知识点: 1. Spark任务与槽位的对应关系:默认情况下单个Spark任务占用1个执行器CPU核心(即1个槽位),同一时间可并行执行的任务数不超过集群分配给该应用的总槽位数。 2. Spark任务数量的决定逻辑:Spark作业每个阶段的任务数量由该阶段处理的数据集的分区数决定,不会随可用资源的多少自动增减。 3. Spark默认资源调度行为:默认未开启动态资源分配时,Spark应用的执行器数量在启动后保持固定,不会自动关闭空闲执行器。 参考资料: Apache Spark 官方作业调度文档, https://spark.apache.org/docs/latest/job-scheduling.html Databricks Apache Spark 开发者认证官方指南, https://www.databricks.com/learn/certification/apache-spark-developer-associate
Spark Developer · Q4
问题#4 以下哪一项是 Spark 执行层次结构中最细粒度的级别?
  • A.
    任务
  • B.
    执行人
  • C.
    节点
  • D.
    工作
  • E.
    插槽

答案: A

Spark的执行调度层次从粗到细依次为应用程序、作业(Job,对应题目中的工作)、阶段(Stage)、任务(Task),其中任务是执行层次中最细粒度的执行单元,每个任务对应处理一个RDD分区的计算逻辑,会被分配到单个Executor的CPU核心上运行。题目询问执行层次结构中最细粒度的级别,对应正确答案为任务。 各选项分析: A. 任务:正确,任务是Spark执行调度层次中最小的执行单元,每个任务仅处理单一RDD分区的计算,是执行层次的最细粒度级别,符合题目要求。 B. 执行人:错误,执行人即Executor,是运行在集群工作节点上的JVM进程,负责承载任务的运行,属于资源层组件,粒度远大于任务,不属于最细执行粒度。 C. 节点:错误,节点是集群中的物理或虚拟服务器,是运行Executor等进程的硬件载体,属于集群基础设施层,粒度远大于执行层的任务。 D. 工作:错误,工作即Spark中的作业,是由Action算子触发的执行单元,一个作业包含多个阶段,每个阶段包含多个任务,粒度远大于任务。 E. 插槽:错误,插槽通常指Executor的CPU核心插槽,是用于分配任务的资源单位,属于资源调度维度的概念,不属于执行层次结构的范畴。 关键知识点: 1. Spark执行层次结构:Spark执行调度层从粗到细分为应用、作业、阶段、任务四级,任务是最细粒度的执行单元。 2. 任务的核心特性:单个Task对应RDD的一个分区,运行在单个Executor CPU核心上,同一阶段的所有Task执行相同的计算逻辑,仅处理的数据分区不同。 3. Spark资源与执行单元的边界:节点、Executor、插槽属于资源层概念,作业、阶段、任务属于执行调度层概念,二者分属不同的管理维度。 参考资料: Apache Spark 官方文档 集群模式概述, https://spark.apache.org/docs/latest/cluster-overview.html Apache Spark 官方文档 作业调度, https://spark.apache.org/docs/latest/job-scheduling.html
Spark Developer · Q5
问题#5 关于 Spark 作业,以下哪项陈述是错误的?
  • A.
    工作被分解成不同的阶段。
  • B.
    当 DataFrame 具有多个分区时,单个作业中会有多个任务。
  • C.
    作业是根据调用操作的时间划分的任务集合。
  • D.
    没有办法监控工作的进展情况。
  • E.
    作业是根据语言变量的定义时间划分的任务集合。

答案: D

本题要求选出关于Spark作业的错误陈述,正确答案为D。Spark原生提供了完善的作业监控体系,包括实时运行的Spark UI、离线查看的历史服务器、可编程调用的REST API等,可全面监控作业的进度、任务执行状态、资源消耗、数据倾斜等情况,因此D选项的陈述完全错误,符合题目的选择要求。 各选项分析: A. 正确,Spark的DAG调度器会基于作业中的宽依赖将作业划分为多个阶段,每个阶段内的任务均为窄依赖,可并行执行,这是Spark核心调度机制的基础内容,属于认证考察的核心知识点。 B. 正确,Spark中任务与分区是一一对应的关系,单个分区对应一个任务,当DataFrame存在多个分区时,作业对应阶段内会生成与分区数量一致的多个任务,分别处理不同分区的数据,符合Spark任务的分配规则。 C. 正确,Spark的所有转换操作都是懒加载的,只有调用行动(Action)操作时才会触发提交作业,因此作业是按照行动操作的调用时间划分的任务集合,符合Spark作业的触发逻辑。 D. 错误,Spark提供了多种原生监控手段:运行中的作业可通过默认开启的4040端口Spark UI查看实时进度,已完成的作业可通过配置的Spark历史服务器回溯运行详情,还可通过REST API获取作业全量运行指标,完全支持作业进展的监控,因此该陈述错误,是本题的正确选项。 E. 该表述严谨性不足,作业的触发仅与行动操作的调用时机相关,若语言变量定义时仅执行转换操作不会触发作业,但若变量定义时执行行动操作则会触发作业,该表述存在局限性,但并非本题的核心错误选项。 关键知识点: 1. Spark作业调度逻辑:作业由行动操作触发,会根据宽依赖划分为多个阶段,每个阶段的任务数量与RDD/DataFrame的分区数量一致。 2. Spark懒加载机制:转换操作不会立即执行,只有调用行动操作时才会提交作业并执行计算。 3. Spark监控体系:Spark原生提供Spark UI、历史服务器、REST API等监控能力,可实时或离线查看作业的运行进度与详细指标。 参考资料: Spark官方作业调度文档, https://spark.apache.org/docs/latest/job-scheduling.html Spark官方监控文档, https://spark.apache.org/docs/latest/monitoring.html

常见问题

Spark Developer 有多少道练习题?

本题库收录 Spark Developer 练习题共 342 道,含单选、多选等题型,每题配有答案与解析。

Spark Developer 练习题支持中英文吗?

支持,Spark Developer 练习题为中英双语对照,便于对照原文理解。

Spark Developer 练习题可以免费试做吗?

可以,本页提供免费样题在线试做;完整题库可在掌学兔注册后获取。