ウィンドウ関数 - ラグ/リード

複数のカラムとオフセット値 (n) の場合、現在の行より n 行前 (遅れ、ラグ) または後 (先行、リード) のカラムの値を返します。

情報一覧

パラメーター

説明
カテゴリー トランスフォーム
データ ソース タイプ HD
出力を他のオペレーターに送信 はい
データ処理ツール Spark

ラグは、前の n 行のデータにアクセスするために使用され、現在の行がそのデータにアクセスできるようにします。リードは同じロジックに従いますが、n 行先のデータにアクセスするために使用されます。使用例としては、顧客の前後のオーダー日を検索することが挙げられます。顧客 ID とオーダー日を含むデータセットを指定し、ラグのパラメーターとして 1 を使用し、リードのパラメーターとして 1 を使用すると、結果は 2 つの追加カラムになります。ラグは現在の行より前のデータを返し、リードは現在の行のデータを返します。一カラム前から。この情報がわかれば、次のステップとして顧客のオーダー間の日数を決定できる可能性があります。

TIBCO Data Science - Team Studio には、他に 2 つの異なるウィンドウ関数オペレーター、ウィンドウ関数 - アグリゲートウィンドウ関数 - ランクが用意されています。ウィンドウ関数オペレーターを使用すると、Spark SQL を利用して、Hadoop 上でデータベースのようなウィンドウ関数を計算できます。Spark SQL でウィンドウ関数を実装する方法の詳細については、このチュートリアルを参照してください。

ウィンドウ関数は、フレームと呼ばれるユーザー定義行の特定のグループに基づいて、入力のすべての入力行の戻り値を計算します。すべての入力行には、それに関連付けられた一意のフレームがあります。

ノート: 各オペレーターは、特定の順序付けされたパーティションに対して、複数のカラムに対して複数のウィンドウ関数を同時に計算できます。別の (順序付けられた) パーティションで同じウィンドウ関数を計算する必要がある場合は、オペレーターをコピーし、コピー上のパーティション/フレーム/順序関連のパラメーターを変更できます。

入力

このオペレーターは HDFS から 1 つのデータセットを取得します。数値集計を計算するにはいくつかの数値カラムが必要で、カラムによるパーティション分割や任意のタイプのカラムによる順序付けが含まれる場合があります。

日時カラムには、入力で指定された形式が必要です (たとえば、日時 'MM/dd/yy')。

値が不正または欠落しています
ダーティ データ: 区切りデータを解析する場合、ウィンドウ関数オペレーターは解析中にダーティ データ (数値カラムの文字列、整数カラムのダブル、値の数が正しくない行など) を削除します。これらの行は、Spark が処理できないため、サイレントに削除されます。

Null 値: ウィンドウ関数を計算する前に、オペレーターは、選択された オーダー・バイ カラムに Null 値を含む行をフィルタリングします。次に、オペレーターは、Null データにより削除された行をファイルに書き込む パラメーターの値に従って、Null 値を持つこれらの行を処理します。Null データにより削除された行の数は、ビジュアル出力の サマリー タブにレポートされます ([はい] を選択しない場合、削除された行はカウントされません (高速))。

制限事項

ワイド データ: このオペレーターは長いデータに対しては高速に動作しますが、ウィンドウ関数が数千のカラムに対して計算される場合、パフォーマンスが大幅に低下する可能性があります。Spark のエグゼキューター メモリを増やすと、パフォーマンスが向上する可能性があります。

日時カラム: 入力日時カラムには、入力で指定された形式が必要です (たとえば、日時 'MM/dd/yy')。それ以外の場合、オペレーターはカラム全体に Null 値を返します。

構成

パラメーター 説明
ノート このオペレーターのパラメーター設定に関するメモまたは役立つ情報。 [ノート] フィールドに内容を入力すると、オペレーターに黄色のアスタリスクが表示されます。
パーティション・バイ パーティション化するカラム。
オーダー・バイ 各パーティションの順序付けに使用するカラム (すべてのデータ タイプがサポートされています)。デフォルトの順序: 昇順
ラグの計算 順序付けされたパーティション内のこれらの各カラムのラグ値、および ラグ オフセット値の各値。

Lag: オフセット値 n の場合、lag 関数は現在の行の n 行前の値を返します。たとえば、オフセット 1 は、ウィンドウ パーティション内の任意の点で次の行 (またはパーティションの最後の行の Null 値) を返します。

ラグ オフセット値 [ラグの計算] で一部のカラムが選択されている場合は、ラグ値を計算するオフセットのカンマ区切りの整数リストを指定します。例えば:

1、2、4 (= ラグの計算で選択した各カラムの前の 1、2、4 行のラグ値を計算します)。

リードの計算 順序付けされたパーティション内のこれらの各カラムのリード値、および リード オフセット値の各値。

Lead: オフセット値 n の場合、lead 関数は現在の行から n 行後の値を返します。たとえば、オフセット 1 は、順序付けされたウィンドウ パーティション内の任意の点の前の行 (またはパーティションの最初の行の Null 値) を返します。

リード オフセット値 リードの計算で一部のカラムが選択されている場合は、リード値を計算するオフセットのカンマ区切りの整数リストを指定します。例えば:

1、2、4 (= リードの計算で選択した各カラムの後の 1、2、4 行のラグ値を計算します)。

保持するカラム 出力に保持するカラム。
Null データにより削除された行をファイルに書き込む 選択した オーダー・バイ カラムに Null 値が含まれる行を分析から削除し、ファイルに書き込むかどうかを指定します。ファイルは残りの出力と同じディレクトリに書き込まれます。ファイル名の接尾辞は _baddata です。

  • Null 行をファイルに書き込まない - Null 値データを削除して結果 UI に表示しますが、外部ファイルには書き込みません。

  • Null 行の書き込みまたはカウントを行わない (最速) - Null 値データを削除しますが、カウントして結果 UI に表示しません。

  • すべての Null 行をファイルに書き込む - Null 値データを削除し、削除されたすべての行を外部ファイルに書き込みます。

ストレージ フォーマット 結果を保存する形式を選択します。保存形式はオペレーターの種類によって決まります。

一般的な形式は、AvroCSVTSV、または Parquet です。

圧縮 出力の圧縮のタイプを選択します。

利用可能な Parquet 圧縮オプション。

  • GZIP
  • Deflate
  • Snappy
  • 圧縮なし

利用可能な Avro 圧縮オプション。

  • Deflate
  • Snappy
  • 圧縮なし
出力ディレクトリ 出力ファイルを保存する場所。
出力名 結果を含める名前。
出力を上書き そのパスにある既存のデータを削除するかどうかを指定します。
  • はい - パスが存在する場合は、そのファイルを削除し、結果を保存します。
  • いいえ - パスがすでに存在する場合は失敗します。
高度な Spark 設定の自動最適化
  • [はい] は、デフォルトの Spark 最適化設定の使用を指定します。
  • [いいえ] を選択すると、カスタマイズされた Spark 最適化を提供できます。 [設定の編集] をクリックして、Spark の最適化をカスタマイズします。詳細については、「詳細設定ダイアログ」を参照してください。

出力

ビジュアル出力
出力サマリーの 2 つのタブによるビジュアル出力。
  • 出力 - データ出力のプレビュー。
  • サマリー - 選択したパラメーターのリスト、Null データにより削除された行数のサマリー、結果の保存場所に関するメッセージ。
データ出力
HDFS データを入力として受け入れる TIBCO Data Science - Team Studio オペレーターが受け入れることができるデータセット。