세미 조인
| 항목 | 값 |
|---|---|
| 화면 이름 | Semi join |
| 식별자 | complexSemiJoinV1 |
| 지원 실행 방식 | Batch, Faster |
| 범주 | 조인 (Join) |
두 데이터셋을 세미 조인하여 조인 조건에 일치하지 않는 왼쪽 행을 제거합니다.
입력 인자
| 이름 | 지정 여부 | 자료형 | 의미와 조건 |
|---|---|---|---|
Condition for columns to select on the left | 필수 | ColumnPredicate | 왼쪽 스키마의 각 열을 검사하여 조건에 맞는 열만 출력으로 선택합니다. |
Join condition | 필수 | Expression<Boolean> | 조인 조건입니다. |
Left dataset | 필수 | Table | 조인에 사용할 왼쪽 데이터셋입니다. |
Right dataset | 필수 | Table | 조인에 사용할 오른쪽 데이터셋입니다. |
입출력 예시
예시 1: 기본 동작
인자 값:
Condition for columns to select on the left:
columnNameIsIn(
columnNames: [tail_number, airline],
)Join condition:
equals(
left:tail_number,
right:tail_number,
)Left dataset: ri.foundry.main.dataset.leftRight dataset: ri.foundry.main.dataset.right
입력:
ri.foundry.main.dataset.left
| tail_number | airline | miles | factor |
|---|---|---|---|
| XB-123 | foundry air | 124 | 2 |
| MT-222 | new airline | 1123 | 5 |
| XB-123 | foundry airline | 335 | 5 |
| MT-222 | new air | 565 | 4 |
| KK-452 | new air | 222 | 1 |
| PA-452 | new air | 212 | 2 |
| XB-123 | foundry airline | 1134 | 2 |
ri.foundry.main.dataset.right
| tail_number | home_airport |
|---|---|
| XB-123 | LHR |
| MT-222 | CPH |
| KK-452 | JFK |
| JR-201 | IAD |
출력:
| tail_number | airline |
|---|---|
| XB-123 | foundry air |
| MT-222 | new airline |
| XB-123 | foundry airline |
| MT-222 | new air |
| KK-452 | new air |
| XB-123 | foundry airline |
예시 2: 기본 동작
여러 비교를 결합한 조인 조건의 예시입니다.
인자 값:
Condition for columns to select on the left:
columnNameIsIn(
columnNames: [tail_number, airline, factor],
)Join condition:
and(
conditions: [
lessThan(
left:factor,
right:factor,
),
equals(
left:tail_number,
right:tail_number,
)],
)Left dataset: ri.foundry.main.dataset.leftRight dataset: ri.foundry.main.dataset.right
입력:
ri.foundry.main.dataset.left
| tail_number | airline | miles | factor |
|---|---|---|---|
| XB-123 | foundry air | 124 | 2 |
| MT-222 | new airline | 1123 | 5 |
| XB-123 | foundry airline | 335 | 5 |
| MT-222 | new air | 565 | 4 |
| KK-452 | new air | 222 | 1 |
| PA-452 | new air | 212 | 2 |
| XB-123 | foundry airline | 1134 | 2 |
ri.foundry.main.dataset.right
| tail_number | home_airport | factor |
|---|---|---|
| XB-123 | LHR | 2 |
| MT-222 | CPH | 1 |
| KK-452 | JFK | 10 |
| JR-201 | IAD | 4 |
출력:
| tail_number | airline | factor |
|---|---|---|
| KK-452 | new air | 1 |
예시 3: 기본 동작
인자 값:
Condition for columns to select on the left:
columnNameIsIn(
columnNames: [tail_number, airline, factor],
)Join condition:
and(
conditions: [
equals(
left:tail_number,
right:tail_number,
),
equals(
left:factor,
right:factor,
)],
)Left dataset: ri.foundry.main.dataset.leftRight dataset: ri.foundry.main.dataset.right
입력:
ri.foundry.main.dataset.left
| tail_number | airline | miles | factor |
|---|---|---|---|
| XB-123 | foundry air | 124 | 2 |
| MT-222 | new airline | 1123 | 5 |
| XB-123 | foundry airline | 335 | 5 |
| MT-222 | new air | 565 | 4 |
| KK-452 | new air | 222 | 1 |
| PA-452 | new air | 212 | 2 |
| XB-123 | foundry airline | 1134 | 2 |
ri.foundry.main.dataset.right
| tail_number | home_airport | factor |
|---|---|---|
| XB-123 | LHR | 2 |
| MT-222 | CPH | 1 |
| KK-452 | JFK | 10 |
| JR-201 | IAD | 4 |
출력:
| tail_number | airline | factor |
|---|---|---|
| XB-123 | foundry air | 2 |
| XB-123 | foundry airline | 2 |
예시 4: 기본 동작
인자 값:
Condition for columns to select on the left:
allColumns(
)Join condition:
equals(
left:tail_number,
right:tail_number,
)Left dataset: ri.foundry.main.dataset.leftRight dataset: ri.foundry.main.dataset.right
입력:
ri.foundry.main.dataset.left
| tail_number | airline | miles | factor |
|---|---|---|---|
| XB-123 | foundry air | 124 | 2 |
| MT-222 | new airline | 1123 | 5 |
| XB-123 | foundry airline | 335 | 5 |
| MT-222 | new air | 565 | 4 |
| KK-452 | new air | 222 | 1 |
| PA-452 | new air | 212 | 2 |
| XB-123 | foundry airline | 1134 | 2 |
ri.foundry.main.dataset.right
| tail_number | home_airport |
|---|---|
| XB-123 | LHR |
| MT-222 | CPH |
| KK-452 | JFK |
| JR-201 | IAD |
출력:
| tail_number | airline | miles | factor |
|---|---|---|---|
| XB-123 | foundry air | 124 | 2 |
| MT-222 | new airline | 1123 | 5 |
| XB-123 | foundry airline | 335 | 5 |
| MT-222 | new air | 565 | 4 |
| KK-452 | new air | 222 | 1 |
| XB-123 | foundry airline | 1134 | 2 |