ウィンドウ関数 - ランク

ウィンドウ化されたパーティションに関連した各行のランクを返します。

情報一覧

パラメーター

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

ランク オペレーターは、rankdense_rank累積分布、および ntile (n: 分位数) 関数をサポートします。このオペレーターの中心的な概念は、定義されたグルーピングまたはパーティションと比較して、各行のランク/順序を計算することです。利用事例としては、固有の顧客を含むデータセット内で、個々の顧客のトランザクションをランク付けするものがあります。この例では、パーティション化またはグルーピングは顧客 ID であり、ランク付け/順序付けするデータは取引額です。各パーティション/顧客 ID 内のトランザクションはランク付けされ、最高の 1 から順にカウントアップされます。

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

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

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

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

入力

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

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

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

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

制限事項

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

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

構成

パラメーター 説明
ノート このオペレーターのパラメーター設定に関するメモまたは役立つ情報。 [ノート] フィールドに内容を入力すると、オペレーターに黄色のアスタリスクが表示されます。
パーティション・バイ パーティション化するカラム。
オーダー・バイ 各パーティションの順序付けに使用するカラム (すべてのデータ タイプがサポートされています)。
オーダー 選択した [オーダー・バイ] カラムのオーダー タイプ。
行番号の計算 行番号関数が、順序付けされたパーティション内で 1 から始まる連続した (かつ一意の) 番号を返すかどうかを指定します。デフォルト値は [いいえ] です。
ランクの計算 ランク関数が順序付けされたパーティション内で 1 から始まる連続番号を返すかどうかを指定します。デフォルト値は [いいえ] です。
密ランクの計算 密ランク関数が順序付けされたパーティション内で 1 から始まる連続番号を返すかどうかを指定します。デフォルト値は [いいえ] です。
ノート: ランクと密ランクの違いは、密ランクでは同点の場合でもランキング順序にギャップが残らないことです (たとえば、3 つの値が 2 位で同点の場合、3 つすべての密ランクは 2 になり、次の値は密ランクになります)3)の。
累積分布の計算 [はい] の場合、この関数は順序付けされたウィンドウ パーティション内の値の累積分布を返します。つまり、現在の行の下にある行の一部です。デフォルト値は [いいえ] です。

N = パーティション内の行の合計数、V = x より前の (および x を含む) 値の数の場合、方程式は CUME_DIST(X)=V/N となります。

分位数の計算 [はい] の場合、順序付きウィンドウ パーティション (SQL の NTILE 関数に相当) 内の n タイル グループ ID (1 から [分位数] まで) を返します。デフォルト値は [いいえ] です。

たとえば、n = 4 (分位数) の場合、行の最初の四半期は値 1 を取得し、第 2 四半期は値 2 を取得し、第 3 四半期は値 3 を取得し、最後の四半期は値 4 を取得します。

ノート: [はい] を選択した場合は、[分位数] に整数値を指定する必要があります。
分位数 分位数の計算[はい] に設定されている場合は、順序付けされたウィンドウ パーティションごとに返す分位数を指定します。値は 0 より大きい整数である必要があります。
保持するカラム 出力に保持するカラム。
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 データにより削除された行数のサマリー、結果の保存場所に関するメッセージ。
データ出力
誰でも受け入れられるデータセットTIBCO Data Science - Team Studio HDFS データを入力として受け入れるオペレーター。