fill
fill() を使用すると、日付項目のギャップを補足できます。ほとんどの場合、fill() を使用してから timeseries ステートメントを使用します。チェックする日付項目を指定すると、FILL() により、欠落している月、日、週、四半期、または年が含まれ、null 値が含まれる行が作成されます。データの日付範囲の境界外の値を含めるには、開始日と終了日を指定して、既存の制限を上書きします。この関数は、null 値が含まれる欠落している日付行を返します。
構文
| 名前 | 説明 |
|---|---|
| resultSet | 必須。fill() 関数の入力として機能するクエリ結果。この resultSet は null 以外の入力にする必要があり、そうしなければ timeseries() 文が実行時に失敗します。 |
| dateCols | 必須。 date_fields — ギャップの有無をチェックする日付項目。 日付形式の文字列には、次の値を使用できます。
startDate — データの日付範囲を超える開始日の値。 endDate — データの日付範囲のを超える終了日の値。
|
| partition | 省略可能。クエリ結果をより小さく分割するために使用される指定パラメーター。指定パラメーターの値が変更されると、fill() 関数はリセットされます。特定のパーティションについて、それぞれの行グループが完了すると、fill() は次のパーティションで実行されます。 |
例
この例では、fill() を使用して、欠落している四半期と年の値を旅行者データに追加します。
クエリによって、最初に年、四半期、および各四半期の旅行者数が返されます。データセットに示されている最初の 3 年間の結果に基づき、使用可能な日付データは、第一四半期のデータのみとなっています。
これは q = load "TouristsData"; q = foreach q generate date_Year, date_Quarter, tourists; の結果です。
| 年 | 四半期 | 旅行者 |
|---|---|---|
| 2001 | 1 | 4127 |
| 2002 | 1 | 4173 |
| 2003 | 1 | 4621 |
fill() は date_cols 配列で入力データを四半期と年によってグループ化するように指定します。年と四半期のデータセットを完全なものにするために、fill() は、それぞれの年に第二四半期、第三四半期、第四四半期を追加し、その旅行者数として null 値を追加します。
| 年 | 四半期 | 旅行者 |
|---|---|---|
| 2001 | 1 | 4127 |
| 2001 | 2 | - |
| 2001 | 3 | - |
| 2001 | 4 | - |
| 2002 | 1 | 4173 |
| 2002 | 2 | - |
| 2002 | 3 | - |
| 2002 | 4 | - |
| 2003 | 1 | 4621 |
| 2003 | 2 | - |
| 2003 | 3 | - |
| 2003 | 4 | - |
拡張された日付範囲の例
このクエリでは、date_Month と date_Year がデータセットの日付値の前または後になっているか、指定されたデータ内にギャップがある旅行者について null 値を返します。
| date_Month | date_Year | 旅行者 |
|---|---|---|
| 10 | 2000 | - |
| 11 | 2000 | - |
| 12 | 2000 | - |
| 01 | 2001 | 41,735 |
| 02 | 2001 | - |
| 03 | 2001 | - |
| 04 | 2001 | 26,665 |
| 05 | 2001 | - |
| 06 | 2001 | - |
| 07 | 2001 | - |