お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
期間 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)
実践的だったことが気に入りました。理論的な知識を実践的な例で適用するのが大好きでした。
Aurelia-Adriana - Allianz Services Romania
コース - Python and Spark for Big Data (PySpark)
機械翻訳