Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

여러 열에 조건부 적용

항목값
화면 이름Apply to multiple columns
식별자projectOnConditionV1
지원 실행 방식Batch, Faster, Streaming
범주자주 쓰는 변환 (Popular)

입력 스키마의 열을 조건으로 선택하여 표현식을 적용하거나 출력 열을 구성합니다.

입력 인자

이름지정 여부자료형의미와 조건
Condition for columns to project필수ColumnPredicate입력 스키마의 각 열을 검사하여 조건에 일치하는 열에 표현식을 적용합니다.
Dataset필수Table연산을 적용할 데이터셋입니다.
Expression to apply필수Expression<AnyType>조건에 맞는 각 열에 한 번씩 적용할 표현식입니다.
Keep remaining columns필수Literal<Boolean>별도로 투영하지 않은 나머지 열을 유지합니다.
Keep matched columns선택Literal<Boolean>조건에 맞았던 원래 열을 유지합니다. 투영한 열의 이름이 같으면 원래 열을 덮어씁니다.

입출력 예시

예시 1: 기본 동작

정규식으로 일치한 열의 이름을 바꿉니다.

인자 값:

  • Condition for columns to project:
    columnHasType(
     type: String,
    )
  • Dataset: ri.foundry.main.dataset.a
  • Expression to apply:
    dynamicAlias(
     expression:
    cast(
     expression: column,
     type: Integer,
    ),
     transformer:
    columnNameRegexReplace(
     input: column,
     pattern: str,
     replace: int,
    ),
    )
  • Keep remaining columns: true
  • Keep matched columns: false

입력:

iddistance_strfactor_str
120001265

출력:

distance_intfactor_intid
200012651

예시 2: 경계 조건

일치한 열과 나머지 열을 모두 유지할 수 있습니다.

인자 값:

  • Condition for columns to project:
    columnHasType(
     type: String,
    )
  • Dataset: ri.foundry.main.dataset.a
  • Expression to apply:
    dynamicAlias(
     expression:
    cast(
     expression: column,
     type: Integer,
    ),
     transformer:
    columnNameConcat(
     inputs: [column, _as_integer],
    ),
    )
  • Keep remaining columns: true
  • Keep matched columns: true

입력:

iddistance
12000

출력:

distance_as_integeriddistance
200012000

예시 3: 경계 조건

새로 만든 열과 함께 조건에 일치했던 원래 열도 유지할 수 있습니다.

인자 값:

  • Condition for columns to project:
    columnHasType(
     type: String,
    )
  • Dataset: ri.foundry.main.dataset.a
  • Expression to apply:
    dynamicAlias(
     expression:
    cast(
     expression: column,
     type: Integer,
    ),
     transformer:
    columnNameConcat(
     inputs: [column, _as_integer],
    ),
    )
  • Keep remaining columns: false
  • Keep matched columns: true

입력:

iddistance
12000

출력:

distance_as_integerdistance
20002000

예시 4: 경계 조건

계산한 열이 원래 열과 이름이 같으면 원래 열을 덮어씁니다. 둘 다 유지하려면 새 열에 다른 이름을 지정합니다.

인자 값:

  • Condition for columns to project:
    columnHasType(
     type: String,
    )
  • Dataset: ri.foundry.main.dataset.a
  • Expression to apply:
    cast(
     expression: column,
     type: Integer,
    )
  • Keep remaining columns: false
  • Keep matched columns: true

입력:

iddistance
12000

출력:

distance
2000

예시 5: 경계 조건

투영한 열만 유지할 수 있습니다.

인자 값:

  • Condition for columns to project:
    columnHasType(
     type: String,
    )
  • Dataset: ri.foundry.main.dataset.a
  • Expression to apply:
    dynamicAlias(
     expression:
    cast(
     expression: column,
     type: Integer,
    ),
     transformer:
    columnNameConcat(
     inputs: [column, _as_integer],
    ),
    )
  • Keep remaining columns: false
  • Keep matched columns: false

입력:

iddistance
12000

출력:

distance_as_integer
2000

예시 6: 경계 조건

조건에 일치하지 않은 나머지 열만 유지할 수 있습니다.

인자 값:

  • Condition for columns to project:
    columnHasType(
     type: String,
    )
  • Dataset: ri.foundry.main.dataset.a
  • Expression to apply:
    cast(
     expression: column,
     type: Integer,
    )
  • Keep remaining columns: true
  • Keep matched columns: false

입력:

iddistance
12000

출력:

distanceid
20001