Github user rberenguel commented on a diff in the pull request: https://github.com/apache/spark/pull/17100#discussion_r146667191 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala --- @@ -270,12 +270,25 @@ trait CheckAnalysis extends PredicateHelper { operator match { case o if o.children.nonEmpty && o.missingInput.nonEmpty => + val resolver = plan.conf.resolver + val attrsWithSameName = o.missingInput.filter { missing => + o.inputSet.exists(input => resolver(missing.name, input.name)) + } + val repeatedNameHint = if (attrsWithSameName.nonEmpty) { + val sameNames = attrsWithSameName.map(_.name).mkString(",") + s"""Attribute(s) with the same name appear in the operation: `$sameNames`. + |Please check if the right attribute(s) are used.""".stripMargin + } else { + "" + } + val missingAttributes = o.missingInput.mkString(",") val input = o.inputSet.mkString(",") - failAnalysis( - s"resolved attribute(s) $missingAttributes missing from $input " + - s"in operator ${operator.simpleString}") + val msg = s"""Resolved attribute(s) $missingAttributes missing from $input + |in operator ${operator.simpleString}.""".stripMargin + + failAnalysis(if (repeatedNameHint.nonEmpty) msg + "\n" + repeatedNameHint else msg) --- End diff -- Yup thanks, is more orderly this way
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org