ウィンドウ関数 - ラグ/リード
複数のカラムとオフセット値 (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')。
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 です。
|
| ストレージ フォーマット | 結果を保存する形式を選択します。保存形式はオペレーターの種類によって決まります。 一般的な形式は、Avro、CSV、TSV、または Parquet です。 |
| 圧縮 | 出力の圧縮のタイプを選択します。 利用可能な Parquet 圧縮オプション。
利用可能な Avro 圧縮オプション。
|
| 出力ディレクトリ | 出力ファイルを保存する場所。 |
| 出力名 | 結果を含める名前。 |
| 出力を上書き | そのパスにある既存のデータを削除するかどうかを指定します。
|
| 高度な Spark 設定の自動最適化 |
|
出力
- 出力 - データ出力のプレビュー。
- サマリー - 選択したパラメーターのリスト、Null データにより削除された行数のサマリー、結果の保存場所に関するメッセージ。
例