メインコンテンツへジャンプ

トランスフォーメーション

Databricks 無料トライアル

トランスフォーメーションとは:

Sparkでは、コアとなるデータ構造は不変であり、一度作成したデータ構造は変更できないため、実際に使用する際に、最初はこの概念に疑問を抱くかもしれません。SparkでDataFrameを変更するためには、Sparkに対し、既存のDataFrameをどのように修正したいかを指示する必要があります。この指示をトランスフォーメーションと呼びます。トランスフォーメーションとは、Sparkを使用してビジネスロジックをどのように記述するかの中心となるものです。トランスフォーメーションには、限定依存と広域依存の2種類があります。

限定依存

限定依存からなるトランスフォーメーション(または限定トランスフォーメーション)では、各入力パーティションはそれぞれ1つの出力パーティションに寄与します。限定トランスフォーメーション

広域依存

広域依存の関係にあるトランスフォーメーション(または広域トランスフォーメーション)では、入力パーティションは複数の出力パーティションに寄与します。これは「シャッフル」と呼ばれ、Sparkはクラスタ全体でパーティションを交換します。限定トランスフォーメーションでは、Sparkは限定依存に対してパイプライン化と呼ばれる操作を自動的に実行します。これは、DataFrameに複数のフィルタを指定する場合、その全てのファイルがインメモリで実行されることを意味します。しかし、これはシャッフルには該当しません。シャッフルを実行すると、Sparkは結果をディスクに書き込みます。シャッフルの最適化は重要なテーマであり、ウェブ上には情報が溢れています。しかし、現時点で覚えておくべきことは、トランスフォーメーションには2種類あるということです。 Wide Transformations

関連資料

用語集に戻る