Github user ueshin commented on a diff in the pull request:
https://github.com/apache/spark/pull/21054#discussion_r185461822
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/Average.scala
---
@@ -85,4 +65,29 @@ case class Average(child: Expression) extends
DeclarativeAggregate with Implicit
case _ =>
Cast(sum, resultType) / Cast(count, resultType)
}
+
+ protected def updateExpressionsDef: Seq[Expression] = Seq(
+ /* sum = */
+ Add(
+ sum,
+ Coalesce(Cast(child, sumDataType) :: Cast(Literal(0), sumDataType)
:: Nil)),
+ /* count = */ If(IsNull(child), count, count + 1L)
+ )
+
+ override lazy val updateExpressions = updateExpressionsDef
+}
+
+@ExpressionDescription(
+ usage = "_FUNC_(expr) - Returns the mean calculated from values of a
group.")
+case class Average(child: Expression)
+ extends AverageLike(child) with ImplicitCastInputTypes {
--- End diff --
nit: indent
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]