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