お問い合わせ
 期間 21 時間

コース概要

モジュール1: ビッグデータとSparkの基礎

  • ビッグデータエコシステムの概要と、モダンなデータプラットフォームにおけるSparkの役割
  • Sparkアーキテクチャの理解:ドライバー、エグゼキュータ、クラスターマネージャー、遅延評価、DAG、実行計画
  • RDD APIとDataFrame APIの差分、およびそれぞれのアプローチの使用タイミング
  • SparkSessionの作成と設定、およびアプリケーション設定の基礎の理解

モジュール2: PySpark DataFrames

  • エンタープライズソースおよび形式(CSV、JSON、Parquet、Delta)からのデータ読み書き
  • PySpark DataFramesでの作業:変換、アクション、カラム式、フィルタリング、ジョイン、集計
  • ウィンドウ関数、タイムスタンプ処理、ネストデータ処理など高度な操作の実装
  • データ品質チェックの適用と、再利用可能で保守可能なPySparkコードの作成

モジュール3: Sparkユーザー向けKubernetesとDockerの基礎

  • DockerイメージとKubernetesポッドがSparkのドライバーおよびエグゼキュータプロセスとどう関連するかを理解する — 管理者ではなくクラスター消費者のための概念的な視点
  • Kubernetes上でSparkジョブを実行した際に何が起きるか:ポッドスケジューリング、リソースリクエストと制限、およびセッション設定がそれらにどうマッピングされるか
  • Sparkセッションパラメータでコントロールできることと、プラットフォームチームがクラスタープロビジョニングでコントロールできることの区別 — なぜこの境界がチューニングにおいて重要か
  • ハンズオン演習: サンドボックスクラスター上で実行中のSpark-on-Kubernetesジョブを検査し、ドライバーとエグゼキュータのポッドを特定する

モジュール4: Kubernetes上のSparkセッション設定 — ディープダイブ

  • エグゼキュータの数量とサイズ:メモリとコアのトレードオフと、それらをどのように推論するか
  • ドライバーおよびエグゼキュータのメモリ割り当て、メモリオーバーヘッド、それらがポッドリソースにどう変換されるか
  • 動的割り当て:Kubernetes上でどう動作するか、いつリソースを節約し、いつ節約しないか
  • ハンズオン演習: 異なるエグゼキュータおよびコア設定で同じジョブを実行し、実行時間とリソース使用量を比較する

モジュール5: スケーリング挙動とコスト最適化

  • ノードの追加や削除がジョブの挙動、完了時間、リソース消費にどう影響するかを理解する
  • 多数の小規模エグゼキュータと少数の大規模エグゼキュータの比較:パフォーマンスとコストのトレードオフ
  • シャフルの挙動とシャフルパーティションのチューニング、設定選択のコスト影響の見積もりを含む
  • ハンズオン演習: サンドボックスクラスターを5ノードから10ノードにスケーリングし、ジョブ完了時間とリソース消費への影響を観察する

モジュール6: 効率的なデータ取り込みとパーティション化

  • スモールファイル問題の理解:なぜ多くの1〜5 MBのParquetファイルに分割されたソースがパフォーマンスを劣化させ、パーティションを歪めるのか
  • リパーティショニングとコalesce戦略
  • 読み込み時と書き込み時のパーティションサイズの制御
  • 下流でスモールファイル問題を再発させないための効率的なParquet書き込み
  • ハンズオン演習: 多数の小規模なParquetパーティションで構成されるデータセットを読み込み、異なるリパーティショニング戦略を適用し、最適化前後のパフォーマンスを比較する

モジュール7: Pandasのメモリ管理と障害診断

  • PandasにおけるOut-of-Memoryエラーの根本原因の理解と症状の認識
  • SparkとPandas間のメモリ効率の良い変換パターンを適用する
  • 大規模データセットをCSVに書き出す際のパフォーマンス劣化を回避する
  • 制約付き環境でのチャンク処理とdtype最適化の利用
  • ハンズオン演習: 典型的なPandasのOut-of-Memoryシナリオを再現し、チャンク処理とdtype最適化を使用して解決する

モジュール8: 補完ツールとしてのPolars

  • PolarsのPandasへの位置づけ:パフォーマンス特性、遅延評価、メモリ挙動
  • モダンなクラウドデータスタックや移行ロードマップ(AWS環境を含む)において、PolarsがPySparkやPandasと併せてどこに適合するかを理解する
  • ハンズオン演習: Pandas依存の変換をPolarsに書き直し、メモリ使用量と処理速度を比較する

モジュール9: ETLとMLワークロードへの最適化適用

  • 現実的なETLパイプライン全体に設定、パーティション化、メモリ管理の原則を適用する
  • 同じクラスター上で実行される機械学習ワークロード固有の最適化考慮事項の理解
  • コストおよびパフォーマンスの問題を体系的に診断するための実践的なチューニングワークフローを適用する
  • ハンズオン演習: データ読み込み、変換、単純なモデルトレーニングステップを組み合わせたエンドツーエンドのミニプロジェクトを完了し、参加者が自らの手でSpark設定をチューニングする

要求

参加者には以下が必要です:

  • Pythonプログラミングの実務経験(関数、モジュール、基本的なオブジェクト指向の概念を含む)。
  • Pandasおよび表形式データ処理ワークフローでの初級〜中級レベルの経験。
  • データの読み込み、変換、アクション、ジョイン、集計を含むPySparkおよびSpark DataFramesに関する基本的な知識。
  • フィルタリング、グループ化、データセットのジョインを含むSQLおよびデータ処理の概念に対する一般的な理解。
  • コンテナ、イメージ、ポッドなどDockerおよびKubernetesの概念に対する基本的な理解。Kubernetesの管理経験は不要です。
  • CSV、JSON、Parquetなどの一般的なデータ形式に対する基本的な理解。

参加者がKubernetes管理者やインフラストラクチャの専門家である必要はありません。本コースでは、データエンジニア、開発者、データサイエンティストが、アプリケーションおよび設定の観点から、Kubernetes上で実行されるSparkワークロードを理解し最適化する方法に焦点を当てています。

対象者

本コースは、クラウドまたはコンテナ化環境においてPythonとSparkを使用してデータ処理や機械学習ワークロードの開発、保守、最適化を行うプロフェッショナル向けに設計されています。

特に以下の職種に適しています:

  • PySpark、分散データ処理、ETLパイプラインに取り組むデータエンジニア。
  • 大規模データセットの処理や、Spark、Pandas、Polarsによる機械学習ワークロードを実行するデータサイエンティスト。
  • メモリ効率や処理パフォーマンスの向上を目指すデータ集約型アプリケーションを開発するPython開発者。
  • 共有Kubernetesまたはクラウド環境におけるデータ準備やモデルトレーニングワークロードを管理する機械学習エンジニア。
  • 大規模データセットを扱いつつ、データ処理効率の向上を求めているアナリティクスエンジニア。
  • Kubernetes上のSparkワークロードをサポートし、アプリケーションレベルの設定がリソース使用量やパフォーマンスに与える影響を理解する必要のあるDevOps、プラットフォーム、クラウドエンジニア。
  • モダンなデータ処理プラットフォームの設計や最適化に関わる技術リードおよびソリューションアーキテクト。

参加者の人数


参加者1人あたりの価格

お客様の声 (1)

今後のコース

関連カテゴリー