MCPcopy Create free account
hub / github.com/apache/arrow / test_table_join_collisions

Function test_table_join_collisions

python/pyarrow/tests/test_exec_plan.py:139–194  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

137
138
139def test_table_join_collisions():
140 t1 = pa.table({
141 "colA": [1, 2, 6],
142 "colB": [10, 20, 60],
143 "colVals": ["a", "b", "f"]
144 })
145
146 t2 = pa.table({
147 "colB": [99, 20, 10],
148 "colVals": ["Z", "B", "A"],
149 "colUniq": [100, 200, 300],
150 "colA": [99, 2, 1],
151 })
152
153 result = _perform_join(
154 "full outer", t1, ["colA", "colB"], t2, ["colA", "colB"])
155 result = result.combine_chunks()
156 result = result.sort_by("colUniq")
157 assert result == pa.table([
158 [None, 2, 1, 6],
159 [None, 20, 10, 60],
160 [None, "b", "a", "f"],
161 [99, 20, 10, None],
162 ["Z", "B", "A", None],
163 [100, 200, 300, None],
164 [99, 2, 1, None],
165 ], names=["colA", "colB", "colVals", "colB", "colVals", "colUniq", "colA"])
166
167 result = _perform_join("full outer", t1, "colA",
168 t2, "colA", right_suffix="_r",
169 coalesce_keys=False)
170 result = result.combine_chunks()
171 result = result.sort_by("colA")
172 assert result == pa.table({
173 "colA": [1, 2, 6, None],
174 "colB": [10, 20, 60, None],
175 "colVals": ["a", "b", "f", None],
176 "colB_r": [10, 20, None, 99],
177 "colVals_r": ["A", "B", None, "Z"],
178 "colUniq": [300, 200, None, 100],
179 "colA_r": [1, 2, None, 99],
180 })
181
182 result = _perform_join("full outer", t1, "colA",
183 t2, "colA", right_suffix="_r",
184 coalesce_keys=True)
185 result = result.combine_chunks()
186 result = result.sort_by("colA")
187 assert result == pa.table({
188 "colA": [1, 2, 6, 99],
189 "colB": [10, 20, 60, None],
190 "colVals": ["a", "b", "f", None],
191 "colB_r": [10, 20, None, 99],
192 "colVals_r": ["A", "B", None, "Z"],
193 "colUniq": [300, 200, None, 100]
194 })
195
196

Callers

nothing calls this directly

Calls 1

_perform_joinFunction · 0.90

Tested by

no test coverage detected