Course Code: pysprkub
Duration: 21 hours
Prerequisites:
参加者には以下が必要です:
- 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、プラットフォーム、クラウドエンジニア。
- モダンなデータ処理プラットフォームの設計や最適化に関わる技術リードおよびソリューションアーキテクト。
Overview:
本3日間の実務コースでは、Kubernetesベースの環境でPySpark、Pandas、Polarsを用いた効率的なデータ処理ワークロードの構築と最適化に焦点を当てます。
参加者は、SparkアプリケーションがKubernetes上でどのように実行されるか、そしてアプリケーションレベルの設定決定がパフォーマンス、スケーラビリティ、リソース消費量、コストにどのように影響を与えるかを、実践的な視点から理解します。本コースでは、エグゼキュータのサイジング、メモリ割り当て、動的割り当て、パーティション戦略、シャフルの挙動、スモールファイル問題、および効率的なParquet処理など、主要な最適化領域を涵盖します。
さらに、Pandasでのメモリ制限やOut-of-Memory(メモリ不足)エラーといった一般的な課題にも対処し、特定のデータ処理ワークロード向けに、高パフォーマンスな代替手段としてPolarsを紹介します。ハンズオンの演習を通じて、参加者はパフォーマンスおよびメモリ関連の問題を診断し、異なる設定戦略を比較し、現実的なETLや機械学習シナリオに最適化技術を適用する能力を身につけます。
コース全体の重点は実践的な意思決定に置かれています。ボトルネックの特定、適切なツールの選択、Sparkの効率的な設定、そしてパフォーマンスとインフラのリソース消費・コストのバランスを取る方法を理解することです。
Course Outline:
モジュール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設定をチューニングする
Sites Published:
United Arab Emirates - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Qatar - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Egypt - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Saudi Arabia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
South Africa - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Brasil - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars
Canada - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
中国 - 基于Kubernetes使用PySpark、Pandas和Polars实现高效数据处理
香港 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
澳門 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
台灣 - 使用PySpark、Pandas和Polars在Kubernetes上進行高效資料處理
USA - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Österreich - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Schweiz - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Deutschland - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Czech Republic - Efektivní zpracování dat v Kubernetes pomocí PySpark, Pandas a Polars
Denmark - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Estonia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Finland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Greece - Αποτελεσματική Επεξεργασία Δεδομένων σε Kubernetes με PySpark, Pandas & Polars
Magyarország - Hatékony adatfeldolgozás Kubernetesben PySpark, Pandas és Polars segítségével
Ireland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Luxembourg - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Latvia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
España - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Italia - Elaborazione dati efficiente su Kubernetes con PySpark, Pandas e Polars
Lithuania - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nederland - Efficiënte verwerking van data op Kubernetes met PySpark, Pandas & Polars
Norway - Effektiv databehandling på Kubernetes med PySpark, Pandas og Polars
Portugal - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars
România - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars
Sverige - Effektiv datahantering med PySpark, Pandas och Polars på Kubernetes
Türkiye - Kubernetes Ortamında PySpark, Pandas ve Polars ile Verimli Veri İşleme
Malta - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Belgique - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars
France - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars
日本 - KubernetesにおけるPySpark、Pandas、Polarsによる効率的なデータ処理
Australia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Malaysia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
New Zealand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Philippines - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Singapore - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Thailand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Vietnam - Xử lý dữ liệu hiệu quả trên Kubernetes bằng PySpark, Pandas & Polars
India - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Argentina - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Chile - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Costa Rica - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Ecuador - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Guatemala - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Colombia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
México - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Panama - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Peru - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Uruguay - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Venezuela - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Polska - Skuteczne przetwarzanie danych w Kubernetesie z wykorzystaniem PySpark, Pandas i Polars
United Kingdom - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
South Korea - PySpark, Pandas 및 Polars를 활용한 Kubernetes에서 효율적인 데이터 처리
Pakistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Sri Lanka - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Bulgaria - Ефективна обработка на данни в Kubernetes с PySpark, Pandas и Polars
Bolivia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Indonesia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kazakhstan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Moldova - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars
Morocco - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Tunisia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kuwait - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Oman - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Slovakia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kenya - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nigeria - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Botswana - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Slovenia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Croatia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Serbia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Bhutan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nepal - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Uzbekistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
US Government - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars