# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # pipelines: - pipeline: transforms: - type: Create name: A config: elements: - {common: "x", a: 1} - {common: "y", a: 2} - {common: "z", a: 3} - type: Create name: B config: elements: - {common: "x", b: 10, other: "t"} - {common: "y", b: 20, other: "u"} - {common: "z", b: 30, other: "v"} - type: Create name: C config: elements: - {other: "t", c: 100} - {other: "u", c: 200} - type: Join input: A: A B: B C: C config: type: inner equalities: - B: other C: other - A: common B: common fields: A: [a] B: [b] C: [c] - type: AssertEqual input: Join config: elements: - {a: 1, b: 10, c: 100} - {a: 2, b: 20, c: 200} - pipeline: transforms: - type: Create name: A config: elements: - {common: "x", a: 1} - {common: "y", a: 2} - {common: "z", a: 3} - type: Create name: B config: elements: - {common: "x", b: 10} - {common: "y", b: 20} - {common: "z", b: 30} - type: Create name: C config: elements: - {common: "x", c: 100} - {common: "y", c: 200} - type: Join name: InnerJoin input: A: A B: B C: C config: type: inner equalities: - A: common B: common C: common fields: A: [common, a] B: [b] C: {c: c, common_c: common} - type: AssertEqual input: InnerJoin config: elements: - {common: "x", a: 1, b: 10, c: 100, common_c: "x"} - {common: "y", a: 2, b: 20, c: 200, common_c: "y"} - type: Join name: OuterJoin input: A: A B: B C: C config: type: outer equalities: - A: common B: common C: common fields: A: [common, a] B: [b] C: {c: c, common_c: common} - type: AssertEqual input: OuterJoin config: elements: - {common: "x", a: 1, b: 10, c: 100, common_c: "x"} - {common: "y", a: 2, b: 20, c: 200, common_c: "y"} - {common: "z", a: 3, b: 30, c: null, common_c: null} - type: Join name: LeftJoin input: A: A C: C config: type: left equalities: - A: common C: common fields: A: [a] C: [c] - type: AssertEqual input: LeftJoin config: elements: - {a: 1, c: 100} - {a: 2, c: 200} - {a: 3, c: null} - type: Join name: RightJoin input: A: A C: C config: type: right equalities: - A: common C: common fields: A: [a] C: [c] - type: AssertEqual input: RightJoin config: elements: - {a: 1, c: 100} - {a: 2, c: 200}