注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

条件に基づくプロジェクト

対応している処理: バッチ、ストリーミング

入力データセットを、行を選択するか、行に関数を適用することで変換します。 変換カテゴリ: 人気

宣言された引数

  • プロジェクトの行に対する条件 - 入力スキーマのすべての行が、この条件に一致するかどうかがチェックされます。一致する場合、指定された式が適用されます。
    ColumnPredicate
  • データセット - 操作を適用するデータセット
    Table
  • 適用する式 - 条件に一致する各行に1回ずつ適用する式
    Expression<AnyType>
  • 残りの行を保持 - データセットにプロジェクトされていないすべての行を保持する
    Literal<Boolean>
  • オプション 一致した行を保持 - 条件に一致した元の行を保持します。プロジェクトされた行と同じ名前の場合、元の行は上書きされます。
    Literal<Boolean>

例 1 - 基本ケース

説明: 正規表現に基づいて一致した行の名前を変更します。 引数の値:

  • プロジェクトの行に対する条件:
    columnHasType(
     type: String,
    )
  • データセット: ri.foundry.main.dataset.a
  • 適用する式:
    dynamicAlias(
     expression:
    cast(
     expression: column,
     type: Integer,
    ),
     transformer:
    columnNameRegexReplace(
     input: column,
     pattern: str,
     replace: int,
    ),
    )
  • 残りの行を保持: true
  • 一致した行を保持: false 入力: | id | distance_str | factor_str | | ----- | ----- | ----- | | 1 | 2000 | 1265 |

出力:

distance_intfactor_intid
200012651

例 2 - エッジケース

説明: 一致した行と残りの行の両方を保持することができます。 引数の値:

  • プロジェクトの行に対する条件:
    columnHasType(
     type: String,
    )
  • データセット: ri.foundry.main.dataset.a
  • 適用する式:
    dynamicAlias(
     expression:
    cast(
     expression: column,
     type: Integer,
    ),
     transformer:
    columnNameConcat(
     inputs: [column, _as_integer],
    ),
    )
  • 残りの行を保持: true
  • 一致した行を保持: true 入力: | id | distance | | ----- | ----- | | 1 | 2000 |

出力:

distance_as_integeriddistance
200012000

例 3 - エッジケース

説明: 条件に一致した行を保持することができます。さらに、新しく作成された行を追加します。 引数の値:

  • プロジェクトの行に対する条件:
    columnHasType(
     type: String,
    )
  • データセット: ri.foundry.main.dataset.a
  • 適用する式:
    dynamicAlias(
     expression:
    cast(
     expression: column,
     type: Integer,
    ),
     transformer:
    columnNameConcat(
     inputs: [column, _as_integer],
    ),
    )
  • 残りの行を保持: false
  • 一致した行を保持: true 入力: | id | distance | | ----- | ----- | | 1 | 2000 |

出力:

distance_as_integerdistance
20002000

例 4 - エッジケース

説明: 一致した行を保持していますが、プロジェクトされた行が既存の行を上書きする場合、一致した行は保持されません。元の行を保持するには、プロジェクトされた行の名前を新しい名前に変更する必要があります。 引数の値:

  • プロジェクトの行に対する条件:
    columnHasType(
     type: String,
    )
  • データセット: ri.foundry.main.dataset.a
  • 適用する式:
    cast(
     expression: column,
     type: Integer,
    )
  • 残りの行を保持: false
  • 一致した行を保持: true 入力: | id | distance | | ----- | ----- | | 1 | 2000 |

出力:

distance
2000

例 5 - エッジケース

説明: プロジェクトされた行のみを保持することができます。 引数の値:

  • プロジェクトの行に対する条件:
    columnHasType(
     type: String,
    )
  • データセット: ri.foundry.main.dataset.a
  • 適用する式:
    dynamicAlias(
     expression:
    cast(
     expression: column,
     type: Integer,
    ),
     transformer:
    columnNameConcat(
     inputs: [column, _as_integer],
    ),
    )
  • 残りの行を保持: false
  • 一致した行を保持: false 入力: | id | distance | | ----- | ----- | | 1 | 2000 |

出力:

distance_as_integer
2000

例 6 - エッジケース

説明: 条件に一致しなかった残りの行のみを保持することができます。 引数の値:

  • プロジェクトの行に対する条件:
    columnHasType(
     type: String,
    )
  • データセット: ri.foundry.main.dataset.a
  • 適用する式:
    cast(
     expression: column,
     type: Integer,
    )
  • 残りの行を保持: true
  • 一致した行を保持: false 入力: | id | distance | | ----- | ----- | | 1 | 2000 |

出力:

distanceid
20001