ウィンドウ関数 - 集計

通常の集計関数呼び出しとは異なり、指定されたフレームに基づいて (オプションの順序で) 入力行ごとに集計変数を作成できます。

情報一覧

パラメーター

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

集計オペレーターは、count、max、min、sum、mean、first_value、および last_value 関数をサポートします。潜在的な使用例としては、過去 30 日間または過去 10 件の取引のみの金額を平均して、デパートごとの平均販売数を決定することが考えられます。

ウィンドウ関数オペレーターを使用すると、Spark SQL を利用して、Hadoop 上でデータベースのようなウィンドウ関数を計算できます。Spark SQL でウィンドウ関数を実装する方法の詳細については、このチュートリアルを参照してください。

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

TIBCO Data Science - Team Studio では、他に 2 つの異なるウィンドウ関数オペレーター、ウィンドウ関数 - ランクウィンドウ関数 - ラグ/リード が用意されています。

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

入力

HDFS からの 1 つのデータセット。データセットには、数値集計を計算するための数値カラムがいくつか必要です。また、カラムによるパーティション分割や任意のタイプのカラムによる順序付けが含まれる場合があります。日時カラムには、入力で指定された形式が必要です (たとえば、日時 'MM/dd/yy')。

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

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

制限事項

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

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

構成

パラメーター 説明
ノート このオペレーターのパラメーター設定に関するメモまたは役立つ情報。 [ノート] フィールドに内容を入力すると、オペレーターに黄色のアスタリスクが表示されます。
パーティション・バイ パーティション化するカラム。 [パーティション・バイ] または [オーダー・バイ] の値を入力する必要があります。
オーダー・バイ 各パーティションを並べ替えるカラム (すべてのデータ タイプがサポートされています)。

  • ウィンドウ フレームの境界[範囲] オプションが選択されている場合、順序カラムは数値である必要があります。
  • デフォルトの順序は [昇順]です。
  • オーダー・バイ カラムが指定されていない場合、フレームは無制限でなければなりません ([フレーム開始][フレーム終了] に値を入力しないでください)。

[パーティション・バイ] または [オーダー・バイ] の値を入力する必要があります。

ウィンドウ フレームの境界 または 範囲 のフレーム境界タイプを指定します。

[行] (デフォルト) が選択されている場合、指定された フレーム開始/フレーム終了の値は、現在の行の前後の行数を指します。

[範囲] が選択されている場合、指定された フレーム開始/フレーム終了 の値は、現在の行の前後(オーダー・バイ カラム)のユニット オフ数を指します。

[範囲] が選択されている場合、オーダー・バイ カラムは数値である必要があります。

フレーム開始 (両端を含む) フレームの開始位置 (現在の行から離れた行または単位)。
  • 負の整数は、現在の行より前の行または範囲を参照します。
  • 正の整数は、現在の行以降の行または範囲を指します。

  • 値が入力されない場合 (デフォルト)、フレームはパーティションの先頭から開始します (つまり、SQL 式 UNBOUNDED PRECEDING のように動作します)。

フレーム終了 (両端を含む) フレームが終了する場所 (現在の行から離れた行または単位)。

デフォルト値は 0 (= 現在の行) です。

ノート:

  • 負の整数は、現在の行より前の行または範囲単位を指します。
  • 正の整数は、現在の行以降の行または範囲単位を指します。

  • 値が入力されない場合、フレームはパーティションの終わりで終了します (つまり、SQL 式 UNBOUNDED FOLLOWING のように動作します)。
  • [フレーム開始][フレーム終了] の両方が指定されている場合、[フレーム終了][フレーム開始] より大きくなければなりません。

カウントを計算する オペレーターが現在の行から選択されたフレーム内の行数を報告するかどうかを指定します。

デフォルト値: いいえ

最大値を見つける これらの各カラムの最大値 (各パーティション内および選択したフレームの)。
最小値を求める これらの各カラムの最小値 (各パーティション内および選択したフレームの)。
合計を計算する これらの各カラムの合計 (各パーティション内および選択したフレームの)。
平均値の計算 これらの各カラムの平均 (各パーティション内および選択されたフレームの)。
最初の値を検索 これらの各カラムの最初の値 (各パーティション内および選択されたフレームの)。
ノート: 出力カラムのデータ タイプは、選択した入力カラムと同じです。
最後の値を検索 これらの各カラムの最後の値 (各パーティション内および選択されたフレームの)。
ノート: 出力カラムのデータ タイプは、選択した入力カラムと同じです。
新しいカラムのサフィックス 作成された新しいカラムに追加するサフィックス (オプション)。
保持するカラム 出力に保持するカラム。
Null データにより削除された行をファイルに書き込む

*必須

選択した オーダー・バイ カラムに 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 オペレーターが受け入れることができるデータセット。