Commit 1b6480b
authored
Fix unionByName to properly handle missing columns from both DataFrames (#243)
When allowMissingColumns=True, the method now correctly handles missing
columns from both the left and right DataFrames by:
- Adding missing columns from the right DataFrame to the left as NULL
- Ensuring all columns from the left DataFrame are present in the right
- Properly aligning column order to match Spark's behavior
This ensures the union result contains all columns from both DataFrames,
with NULL values where columns are missing, matching PySpark behavior.3 files changed
Lines changed: 37 additions & 10 deletions
File tree
- .github/workflows
- duckdb/experimental/spark/sql
- tests/fast/spark
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1067 | 1067 | | |
1068 | 1068 | | |
1069 | 1069 | | |
1070 | | - | |
1071 | | - | |
| 1070 | + | |
1072 | 1071 | | |
1073 | 1072 | | |
1074 | 1073 | | |
| |||
1121 | 1120 | | |
1122 | 1121 | | |
1123 | 1122 | | |
1124 | | - | |
| 1123 | + | |
1125 | 1124 | | |
1126 | | - | |
1127 | | - | |
1128 | | - | |
1129 | | - | |
1130 | | - | |
1131 | | - | |
1132 | | - | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
1133 | 1144 | | |
1134 | 1145 | | |
1135 | 1146 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
0 commit comments