ウィンドウ関数 - ランク

このオペレーターは、ウィンドウ化されたパーティションに関連した各行のランクを返します。

ウィンドウ関数ランクオペレーター アイコン

情報一覧

ノート: このオペレーターは、TIBCO® Data Virtualization および Apache Spark 3.2 以降でのみ使用できます。

パラメーター

説明
カテゴリー トランスフォーム
データ ソース タイプ TIBCO® Data Virtualization
出力を他のオペレーターに送信 はい
データ処理ツール TIBCO® DV, Apache Spark 3.2 以降

アルゴリズム

ウィンドウ関数 - ランク オペレーターは、rankdense_rank累積分布ntile (n は分位の数) 関数に対応しています。このオペレーターの中核となる概念は、定義されたグルーピングまたはパーティションに対する各行の順位または順序を計算することです。使用例としては、一意の顧客を含むデータセット内で、個々の顧客のトランザクションをランク付けすることが挙げられます。この例では、パーティショニング、またはグルーピングは、顧客 ID であり、ランク付けや順序付けを行うデータはトランザクションの金額である。各パーティションまたは顧客 ID 内のトランザクションは、最高値の 1 から順番にランク付けされます。

このオペレーターを使用すると、Spark SQL を利用してデータベースのようなウィンドウ関数を計算できます。Spark SQL でウィンドウ関数がどのように実装されるかについて詳しく知るには。

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

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

入力

入力は単一の表形式のデータセットです。数値集計を計算し、カラムによるパーティション分割と任意のタイプのカラムによる順序付けを含む、いくつかの数値カラムが必要です。

不正な値または欠落している値
ダーティ データ: 区切りデータを解析する場合、ウィンドウ関数オペレーターは解析中にダーティ データ (数値カラムの文字列、整数カラムのダブル、値の数が正しくない行など) を削除します。これらの行は、Spark が処理できないため、サイレントに削除されます。
Null 値: ウィンドウ関数を計算する前に、オペレーターは、選択された オーダー・バイ カラムに Null 値を含む行をフィルタリングします。Null データにより削除された行の数は、ビジュアル出力の サマリー タブにレポートされます。
Datetime カラムは、入力で指定された形式 (たとえば、Datetime '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 となります。

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

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

ノート: [はい] を選択した場合は、[分位数] に整数値を指定する必要があります。
分位数 分位数の計算[はい] に設定されている場合は、順序付けされたウィンドウ パーティションごとに返す分位数を指定します。値は 0 より大きい整数である必要があります。
保持するカラム 出力に保持するカラムを指定します。 [カラムの選択] をクリックして、必要なカラムを選択します。
出力スキーマ 出力テーブルまたはビューのスキーマを指定します。
出力テーブル 結果の出力が生成されるテーブルのパスと名前を指定します。デフォルトでは、これはユーザー ID、ワークフロー ID、およびオペレーターに基づく一意のテーブル名です。
結果の保存 [はい] に設定すると、オペレーターは結果を保存します。 [いいえ] に設定すると、オペレーターは結果を保存しません。

出力

ビジュアル出力
オペレーターは、出力サマリーの 2 つのタブを含むビジュアル出力を返します。
  • 出力: データセットの出力を表示するテーブル。

  • サマリー: 入力パラメータ、その現在の設定、および Null データにより削除された行数のサマリーに関する情報が表示されます。

後続オペレーターへの出力
データセットを入力として受け付ける TIBCO Data Science - Team Studio オペレーターで使用できるデータセット。

次の例は、ウィンドウ関数 - ランク オペレーターを示しています。

ウィンドウ関数のランクオペレーターのワークフロー
データ
golf: このデータセットには次の情報が含まれています。
  • 複数のカラム、ここでは、天気概況、気温、風、湿度、プレー。
  • 複数行 (14 行)。
パラメーター設定
golf データセットのパラメーター設定は次のとおりです。
  • パーティション: 再生

  • オーダー方法: 温度

  • 順序: 昇順

  • 行番号を計算: はい

  • ランクの計算: はい

  • 密ランクの計算: はい

  • 累積分布の計算: はい

  • 分位数の計算: はい

  • 分位数: 2

  • 保持するカラム: 天気概況、気温、湿度、風、プレー

  • 結果を保存: はい

結果
これらの図は、golf データセットのパラメーター設定の結果を示しています。
サマリー
ウィンドウ関数 ランクオペレーター - [サマリー] タブ
出力
ウィンドウ関数 Rank オペレーター - [出力] タブ