Databricks

Databricks Spark Developer完全解説|DataFrame API・Spark SQL対策

2026-03-21
更新: 2026-10-12
NicheeLab編集部
目次
  1. 試験概要
  2. 7つの出題セクションと配点(公式Exam Guide)
  3. セクション1: Apache Spark Architecture and Components(20%)
  4. セクション3: DataFrame/DataSet API Applications(30%)
  5. セクション2: Using Spark SQL(20%)
  6. データソースの読み書き(セクション2・3)
  7. 補足: Higher-order Functions(出題目標に明記なし)
  8. セクション5: Structured Streaming(10%)
  9. セクション4: Troubleshooting and Tuning(10%)と関連トピック
  10. セクション6・7: Spark ConnectとPandas API on Spark(各5%)
  11. PySpark vs Scala:試験のコードはPythonのみ
  12. 問題で確認
  13. よくある質問

Databricks Certified Associate Developer for Apache Spark(通称Spark Developer)は、PySparkによるDataFrame API・Spark SQLの実装力を測定する認定試験です(試験のコードはすべてPython)。 純粋なApache Spark APIの深い知識が問われ、Unity Catalogなどのプラットフォーム機能は範囲外です。 配点が最も大きいのはDataFrame/DataSet APIを使ったアプリケーション開発のセクション(30%)のため、APIリファレンスの読み込みと実装演習が合格の鍵です。

試験概要

項目内容
試験名Databricks Certified Associate Developer for Apache Spark
問題数45問
試験時間90分(1問あたり平均2分)
合格ライン非公表(統計的分析で設定され、変更されうる)
受験料$200(税別)
言語英語のみ
コードの言語Python(試験のコードはすべてPython)
有効期間2年間
コード問題比率非公表

英語のみの試験のため、問題文・選択肢・コードスニペットはすべて英語で出題されます。技術用語はそのまま英語で理解しておくと読み取り速度が上がります。

7つの出題セクションと配点(公式Exam Guide)

セクション配点出題数目安
1. Apache Spark Architecture and Components20%約9問
2. Using Spark SQL20%約9問
3. Developing Apache Spark DataFrame/DataSet API Applications30%約13〜14問
4. Troubleshooting and Tuning Apache Spark DataFrame API Applications10%約4〜5問
5. Structured Streaming10%約4〜5問
6. Using Spark Connect to deploy applications5%約2問
7. Using Pandas API on Apache Spark5%約2問

セクション1: Apache Spark Architecture and Components(20%)

Sparkの内部動作を理解しているかを問います。コードではなく概念の選択問題が中心です。

  • Driver / Executor モデル:DriverがSparkSessionを保持しジョブ計画を立て、ExecutorがTask単位で並列実行する。Executorのメモリ不足(OOM)が発生した場合の対処法(パーティション数増加、メモリ設定変更)
  • Lazy Evaluation:Transformation(select, filter, groupBy等)はActionが呼ばれるまで実行されない。 explain()で論理プランと物理プランを確認する方法
  • Narrow vs Wide Transformation:Narrow(map, filter:パーティション内で完結、シャッフル不要)とWide(groupBy, join, repartition:シャッフル発生)の区別
  • Catalyst Optimizer:論理プラン → 最適化論理プラン → 物理プラン → コード生成の4段階。Predicate Pushdown(フィルタの早期適用)、Column Pruning(不要列の除外)、Constant Folding(定数式の事前計算)が頻出の最適化ルール
  • Adaptive Query Execution(AQE):実行時統計に基づくジョイン戦略の動的変更、パーティションのコアレス、スキュー分割を自動で行う。Databricksではデフォルト有効

セクション3: DataFrame/DataSet API Applications(30%)

配点が最も高いセクションです。PySpark DataFrame APIの主要メソッドの引数・戻り値・挙動を正確に理解しているかが問われます。

頻出APIと出題パターン

  • select / withColumn:df.select("col1", "col2")は列の絞り込み、df.withColumn("new_col", expr)は列の追加・変換。selectは既存列のみ返し、withColumnは全列+新列を返す違い
  • filter / where:df.filter(col("age") > 30)とdf.where("age > 30")は同義。複数条件の結合には&(AND)、|(OR)を使い、各条件を括弧で囲む
  • groupBy / agg:df.groupBy("dept").agg(count("*"), avg("salary"))で集約関数を複数適用する。aggなしのgroupBy().count()との違い
  • join:df1.join(df2, "key", "inner")の第3引数でjoin typeを指定。inner / left / right / outer / cross / semi / anti の7種類。semi joinは右テーブルの列を返さず、anti joinは不一致行のみ返す
  • Window関数:Window.partitionBy("dept").orderBy("salary")を定義し、row_number()、rank()、dense_rank()、lag()、lead()を適用する。row_numberは同順位でも連番、rankは同順位で同番号+欠番、dense_rankは欠番なし

セクション2: Using Spark SQL(20%)

  • spark.sql("SELECT ...")の戻り値はDataFrame。createOrReplaceTempView("view_name")でDataFrameをSQLからアクセス可能にする
  • SQL組み込み関数:COALESCE、NULLIF、CASE WHEN、CAST、日付関数(date_add、datediff、date_format)
  • サブクエリ:相関サブクエリ(EXISTS)と非相関サブクエリ(IN)の違いと実行計画への影響

データソースの読み書き(セクション2・3)

  • spark.read.format("csv").option("header", "true").option("inferSchema", "true")でCSV読み込み。JSON・Parquet・ORC・Avroの読み書き方法と各フォーマットの特徴
  • スキーマ定義:StructTypeとStructFieldで明示的にスキーマを指定する方法。inferSchemaのオーバーヘッド(全データスキャン)を避ける目的
  • パーティション分割書き込み:df.write.partitionBy("year", "month")でデータをディレクトリ構造に分割。過剰なパーティション分割(高カーディナリティ列の指定)がもたらす小ファイル問題
  • 書き込みモード:append(追記)、overwrite(上書き)、error/errorifexists(デフォルト、既存テーブルがあればエラー)、ignore(既存テーブルがあれば何もしない)の4モード

補足: Higher-order Functions(出題目標に明記なし)

配列(ArrayType)やマップ(MapType)に対するラムダ関数操作です。公式の出題目標には明記されていませんが、セクション3の配列の展開(explode)などと合わせて押さえておくと、配列データを扱う問題で迷いにくくなります。

  • transform:配列の各要素にラムダ関数を適用。transform(array_col, x -> x * 2)で全要素を2倍にする
  • filter:配列から条件に合う要素のみ抽出。filter(array_col, x -> x > 0)で正の要素のみ残す
  • exists:配列内に条件を満たす要素が存在するかをBooleanで返す。exists(array_col, x -> x == "target")
  • aggregate:配列の要素を畳み込み演算で集約。初期値とラムダ関数を指定して、配列の合計や結合文字列を計算する

セクション5: Structured Streaming(10%)

  • spark.readStream.format("rate")やformat("socket")でテスト用ストリームを作成する方法
  • 出力モード:append(新規行のみ出力、集約なしのストリーム向け)、complete(全結果を毎回出力、集約ありのストリーム向け)、update(変更行のみ出力)の3モード
  • ウォーターマーク:withWatermark("timestamp", "10 minutes")で遅延データの許容範囲を設定。ウォーターマークを超えた遅延データは破棄される
  • Trigger設定:trigger(processingTime="5 seconds")(マイクロバッチ間隔指定)、trigger(availableNow=True)(全データを処理して停止)

セクション4: Troubleshooting and Tuning(10%)と関連トピック

  • ブロードキャスト変数:broadcast_var = sc.broadcast(lookup_dict)で全Executorに読み取り専用データを配布。大きな辞書やルックアップテーブルに使用
  • アキュムレータ:acc = sc.accumulator(0)で分散環境での集計カウンタを作成。Transformationの中でaccumulatorを更新した場合、Actionの再実行で値が増加する問題
  • repartition vs coalesce:repartitionはフルシャッフルでパーティション数を増減。coalesceはシャッフルなしでパーティション数を減少のみ。書き込み前のファイル数調整にはcoalesceが推奨
  • キャッシュ戦略:df.cache()(メモリのみ)とdf.persist(StorageLevel.MEMORY_AND_DISK)の違い。同じDataFrameを複数回参照する場合にキャッシュが有効

セクション6・7: Spark ConnectとPandas API on Spark(各5%)

  • Spark Connect:Spark Connectの特徴と、デプロイモード(Client・Cluster・Local)の違いが出題目標です
  • Pandas API on Spark:Pandas API on Sparkを使う利点と、Pandas UDFの作成・呼び出しが出題目標です

PySpark vs Scala:試験のコードはPythonのみ

公式ページによると、Spark Developer試験のコードはすべてPythonで提示されます。以下は、実務で言語を選ぶときの参考としての比較です。

観点PySparkScala
学習リソース豊富(公式Doc・Qiita・YouTube)限定的
実務での利用率80%以上のDatabricksユーザーが使用20%未満
型安全性動的型付け(実行時エラー)静的型付け(コンパイル時エラー)
パフォーマンスDataFrame APIはScalaと同等RDD操作はPySparkより高速
試験での扱い出題言語(コードはすべてPython)出題されない

問題で確認

Databricks

問題 1

PySparkで100GBのDataFrame(df_large)と50MBのDataFrame(df_small)をinner joinする場合、最もパフォーマンスが高いアプローチはどれですか?

  1. df_large.join(df_small, 'key', 'inner') をそのまま実行し、Catalyst Optimizerに最適化を任せる
  2. from pyspark.sql.functions import broadcast を使い、df_large.join(broadcast(df_small), 'key', 'inner') でbroadcast hash joinを明示的に指定する
  3. df_large.repartition('key').join(df_small.repartition('key'), 'key', 'inner') で両方をキー列でパーティション分割してからjoinする
  4. df_large.cache() と df_small.cache() を実行してから df_large.join(df_small, 'key', 'inner') を実行する

正解: B

50MBのDataFrameは十分に小さいため、broadcast()ヒントを使ってbroadcast hash joinを明示的に指定するのが最もパフォーマンスが高くなります。broadcast hash joinではdf_smallを全Executorにコピーし、シャッフルなしでjoinを実行するため、ネットワーク転送量が大幅に削減されます。選択肢AではCatalyst/AQEが自動でbroadcast joinを選択する可能性はありますが、spark.sql.autoBroadcastJoinThresholdのデフォルト値は10MBのため、50MBのテーブルは自動broadcastの対象外です。明示的なbroadcastヒントが確実です。選択肢Cのrepartitionは両テーブルでフルシャッフルが発生し、100GBのデータ移動が生じるため非効率です。選択肢Dのcacheはjoin自体の戦略を変えないため、パフォーマンス改善効果は限定的です。

よくある質問

Spark Developer試験のコードはPythonとScalaのどちらで出題されますか?

公式ページによると、Spark Developer試験のコードはすべてPythonで提示されます。受験時にScalaを選ぶことはできないため、PySparkに絞って学習してください。公式ドキュメント・Academy・コミュニティの学習リソースもPython版が圧倒的に多いため、学習面でも有利です。

コード問題の比率と対策方法を教えてください

コード問題の比率は公表されていません。公式ページによると、コードはすべてPythonで提示されます。配点が最も大きいセクション3(DataFrame/DataSet APIを使ったアプリケーション開発、30%)では列・行の操作、結合、集計、UDFなどが出題目標に挙がっており、Structured StreamingのreadStream/writeStreamも範囲です。コードの実行結果を問う形式が多いため、PySpark APIの戻り値の型と挙動を正確に把握しておくことが必要です。Free Edition(Community Editionの後継)でコードを実際に動かしながら学習するのが最も効果的です。

Spark Developer試験の難易度はData Engineer Associateと比べてどうですか?

DEAがDatabricksプラットフォーム全体を広く浅く問うのに対し、Spark DeveloperはSpark/PySpark APIの深い理解に特化しています。Unity CatalogやLakeflow Jobsなどのプラットフォーム機能は出題範囲になく、純粋なSpark APIの知識が問われます。コード問題の比率はどちらの試験も公表されていませんが、Spark DeveloperはコードがすべてPythonで提示され、DataFrame/DataSet APIのセクションが配点の30%を占めるため、APIリファレンスの読み込みとハンズオン演習が必須です。英語のみの試験であることも難易度を上げる要因です。

Databricks資格の関連記事

Data Engineer Associate 完全解説

Spark の知識がそのまま活きる Associate

PySpark 完全ガイド

DataFrame API と内部動作

Databricks 試験の難易度ランキング

7試験を学習時間とともに比較

Databricks 資格一覧

出題範囲と合格ラインを一望

この記事の内容を、基礎から読む

出題範囲を体系的に扱う教科書があります。全 16 章、登録なしで全部読めます。

教科書の目次をすべて見る →
この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全8試験・難易度・勉強法

Databricks認定資格(全8試験)の一覧・出題範囲・合格ライン・難易度を徹底解説。2026年10月時点の公式情報に...

Databricks

Databricks試験の難易度ランキング|7資格を徹底比較

Databricks認定試験のうち7資格の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。2026年5月版...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。2026年...

Databricksの記事一覧 (109件)
© 2026 NicheeLab All rights reserved.