Databricks Apache Spark Developer Associate試験は、 SparkのコアアーキテクチャからDataFrame API・Spark SQL・Structured Streamingまで Apache Sparkの実践的なコーディングスキルを問う試験です。 この記事では7つの出題ドメインと配点表を示した上で、コード問題の特徴と攻略法を解説し、 代表ドメインから練習問題3問を掲載しています。
Spark Developer Associate試験は45問・90分で、公式Exam Guideでは以下の7セクションから出題されます。コードがすべてPythonで提示される点が特徴です(コード問題の比率は公表されていません)。
| セクション | 配点比率 | 主なトピック |
|---|---|---|
| Apache Spark Architecture and Components | 20% | Driver/Executor・実行階層(ジョブ/ステージ/タスク)・パーティションとシャッフル・遅延評価・キャッシュとストレージレベル |
| Using Spark SQL | 20% | JDBCやファイルの読み書き・ファイルへの直接SQLクエリ(Delta形式を含む)・保存モード・一時ビュー |
| Developing Apache Spark DataFrame/DataSet API Applications | 30% | 列・行の操作・重複排除・集計・日付型・結合(broadcast joinを含む)・UDF・ブロードキャスト変数とアキュムレータ |
| Troubleshooting and Tuning Apache Spark DataFrame API Applications | 10% | パーティショニング・データスキュー・シャッフル削減・AQE・ドライバ/Executorログによる診断 |
| Structured Streaming | 10% | マイクロバッチ・exactly-once・出力モードとシンク・ウィンドウ集計・ウォーターマーク有無での重複排除 |
| Using Spark Connect to deploy applications | 5% | Spark Connectの特徴・デプロイモード(Client / Cluster / Local) |
| Using Pandas API on Apache Spark | 5% | Pandas API on Sparkの利点・Pandas UDF |
コード問題の比率は、Spark Developer試験も他のDatabricks試験(DEA・MLA等)も公表されていません。Spark Developer試験ではコードがすべてPythonで提示され、配点が最も大きいセクションもDataFrame/DataSet APIを使ったアプリケーション開発(30%)のため、APIの正確な知識と実行結果のイメージ力が合否を分けます。
コード問題を確実に正答するためのポイントは3つあります。
select → filter → groupBy → agg → orderByのような変換チェーンを読み、最終的なDataFrameのスキーマと行数を予測する問題が最頻出です。特にgroupByの集計結果の行数(ユニークキーの数)と、aggで指定した集計関数(count・sum・avg・max・min)の結果カラム名がポイントになります。
Catalystが適用する代表的な最適化ルールを問う問題が出題されます。述語プッシュダウン(フィルタ条件をデータソース読み込み時に適用)、カラムプルーニング(不要カラムの読み込みを省略)、定数畳み込み(コンパイル時に定数式を評価)、ジョイン順序の最適化(小テーブルを先にブロードキャスト)が4大ルールです。
Append / Complete / Updateの3つの出力モードの違いと、ウォーターマークの目的(遅延データの許容範囲定義・ステートのメモリ管理)が頻出です。集約クエリにAppendモードを使うにはウォーターマークが必須という制約も問われます。
DataFrame API・Catalyst Optimizer・Structured Streamingから各1問を掲載しています。コードを読んで実行結果をイメージしてから選択肢を選びましょう。
DataFrame API
問題 1
以下のPySparkコードの実行結果として正しいものはどれですか? df = spark.createDataFrame( [("Alice", "Sales", 5000), ("Bob", "Sales", 6000), ("Carol", "Eng", 7000), ("Dave", "Eng", 7000)], ["name", "dept", "salary"]) from pyspark.sql.window import Window from pyspark.sql.functions import rank w = Window.partitionBy("dept").orderBy(col("salary").desc()) result = df.withColumn("rnk", rank().over(w)).filter(col("rnk") == 1) result.select("name", "dept").show()
正解: C
rank()ウィンドウ関数はpartitionBy('dept')で部門ごとに分割し、salary降順でランクを付けます。Sales部門ではBob(6000)がrank=1、Alice(5000)がrank=2です。Eng部門ではCarolとDaveが同額(7000)のためどちらもrank=1になります。rank()は同順位に同じランクを付与するため、Eng部門からrank=1が2行出力されます。filterでrnk==1を絞り込むと、Bob・Carol・Daveの3行が結果になります。dense_rank()でも同じ結果ですが、row_number()を使った場合は同額でも順序が一意に決まるため2行になります。この違いはSpark Developer試験のウィンドウ関数問題で頻出です。
Catalyst Optimizer
問題 2
以下のSpark SQLクエリに対してCatalyst Optimizerが適用する最適化として正しいものはどれですか? SELECT name, salary FROM employees WHERE dept = 'Engineering' AND salary > 100000
正解: A
Catalyst Optimizerは複数の最適化ルールを同時に適用します。このクエリでは、(1)カラムプルーニング:SELECTで使用するname・salaryに加え、WHERE句で使用するdeptの3カラムのみをParquetファイルから読み込みます(他のカラムは読み込まない)。(2)述語プッシュダウン:dept='Engineering'とsalary>100000のフィルタ条件をParquetファイルのRow Group統計情報と照合し、条件に合致しないRow Groupをスキップします。この2つの最適化により、不要なI/Oが大幅に削減されます。Parquet形式はカラムナストレージなのでカラムプルーニングの効果が特に高く、Delta LakeテーブルではさらにData Skipping(ファイルレベルの統計情報による除外)も適用されます。
Structured Streaming
問題 3
以下のStructured Streamingコードで、trigger(availableNow=True)を使用した場合の動作として正しいものはどれですか? (spark.readStream .format("cloudFiles") .option("cloudFiles.format", "json") .load("/data/events/") .writeStream .format("delta") .option("checkpointLocation", "/checkpoints/events") .trigger(availableNow=True) .toTable("bronze.events"))
正解: B
trigger(availableNow=True)は、チェックポイント以降の未処理データをすべて処理し、完了後にストリームを自動停止するトリガーモードです。trigger(once=True)と似ていますが、availableNowはデータを複数のマイクロバッチに分割して処理するため、大量の未処理ファイルがある場合でもメモリ不足を防げます。trigger(once=True)は全データを1つのマイクロバッチで処理するためCが該当します。availableNowはcloudFiles(Auto Loader)との組み合わせが特に推奨されており、バッチ的なスケジュール実行(例:毎朝1回Workflowで起動)でストリーミングの増分処理を活用するパターンに最適です。この使い分けはSpark Developer試験で頻出です。
コード問題の正答率を上げる最も効果的な方法は、自分でコードを書いて実行することです。Free Edition(Community Editionの後継)で小さなサンプルデータを作成し、select・filter・groupBy・join・withColumn・when/otherwise・ウィンドウ関数のコードを実際に書いて結果を確認しましょう。特にウィンドウ関数(rank・dense_rank・row_number・lag・lead)はpartitionByとorderByの組み合わせで結果が変わるため、手を動かして体感する必要があります。
Catalyst Optimizerの最適化を理解するには、df.explain(True)で論理計画(Parsed / Analyzed / Optimized)と物理計画(Physical Plan)を確認する習慣をつけましょう。述語プッシュダウンが適用されているか、ブロードキャストジョインが選択されているか、実行計画を読めるようになると最適化問題の正答率が大幅に上がります。
Spark UIのJobs・Stages・SQL/DataFrameタブの読み方を理解しておきましょう。タスクの処理時間分布(データスキューの検出)、シャッフル読み書きのサイズ、キャッシュヒット率、ステージ間のDAGなど、パフォーマンス問題の診断に関する出題があります。
Spark Developer試験のコード問題はPythonとScalaのどちらで出題されますか?
公式ページによると、Spark Developer Associate試験のコードはすべてPythonで提示されます。Scalaで受験する選択肢はないため、PySparkに絞って学習すれば十分です。PySparkは学習リソースも豊富で、公式ドキュメントやDatabricks Academyの教材もPythonが中心です。
Spark Developer試験のコード問題はどのような形式で出題されますか?
コード問題は主に3パターンあります。(1)完成コードの出力結果を予測する問題(例:groupBy→agg→showの結果行数)、(2)空欄補完型(コードの一部が___になっており、正しいメソッド名・引数を選ぶ)、(3)エラー発見型(実行時にエラーになるコードを選ぶ)です。いずれもAPIの仕様を暗記するだけでなく、実行結果をイメージできる力が必要です。Free Edition(Community Editionの後継)で実際にコードを動かす練習が効果的です。
Spark Developer試験ではDelta Lakeの問題も出題されますか?
公式の出題目標でDelta Lakeに触れているのは、セクション2の「Delta形式を含むファイルに直接SQLクエリを実行する」という項目です。Data Engineer試験のような深さは問われず、MERGEの複雑な条件分岐・Lakeflow Spark Declarative Pipelines (旧 Delta Live Tables)・Unity Catalogの権限管理などはSpark Developer試験の出題目標に含まれていません。Delta Lake単独の出題比率は公表されていません。
出題範囲を体系的に扱う教科書があります。全 16 章、登録なしで全部読めます。
第 0 部・無料
クラウド自体がはじめての方へ
サーバー・ネットワーク・データベースの前提知識なしで読める 8 章。登録不要・無料。
無料
Spark はどう動き、SQL で何をどこまで書けるか
実行の仕組みと SQL の守備範囲
無料
Databricks とレイクハウスの全体像
なぜこの製品が要るのか、何がどこに属するか
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Databricks資格一覧|全8試験・難易度・勉強法
Databricks認定資格(全8試験)の一覧・出題範囲・合格ライン・難易度を徹底解説。2026年10月時点の公式情報に...
Databricks試験の難易度ランキング|7資格を徹底比較
Databricks認定試験のうち7資格の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...
Databricks資格の勉強方法|最短合格ルートと学習時間の目安
Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...
Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略
Databricks Certified Data Engineer Associate試験を徹底解説。2026年5月版...
Databricks Data Engineer Professional完全解説|上級試験の攻略法
Databricks Certified Data Engineer Professional試験を徹底解説。2026年...