diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveUnion.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveUnion.scala index c0eace6052590..42d82b831ccd9 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveUnion.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveUnion.scala @@ -139,7 +139,11 @@ object ResolveUnion extends Rule[LogicalPlan] { val leftChild = if (allowMissingCol) { // Add missing (nested) fields to left plan. val (leftProjectList, _) = compareAndAddFields(rightChild, left, allowMissingCol) - Project(leftProjectList, left) + if (leftProjectList.map(_.toAttribute) != left.output) { + Project(leftProjectList, left) + } else { + left + } } else { left }