[SPARK-11371] Make "mean" an alias for "avg" operator

From Reynold in the thread 'Exception when using some aggregate operators' (http://search-hadoop.com/m/q3RTt0xFr22nXB4/):

I don't think these are bugs. The SQL standard for average is "avg", not "mean". Similarly, a distinct count is supposed to be written as "count(distinct col)", not "countDistinct(col)".
We can, however, make "mean" an alias for "avg" to improve compatibility between DataFrame and SQL.

Author: tedyu <yuzhihong@gmail.com>

Closes #9332 from ted-yu/master.
This commit is contained in:
tedyu 2015-11-02 13:51:53 -08:00 committed by Yin Huai
parent 33ae7a35da
commit db11ee5e56
2 changed files with 10 additions and 0 deletions

View file

@ -185,6 +185,7 @@ object FunctionRegistry {
expression[Last]("last"),
expression[Last]("last_value"),
expression[Max]("max"),
expression[Average]("mean"),
expression[Min]("min"),
expression[Stddev]("stddev"),
expression[StddevPop]("stddev_pop"),

View file

@ -298,6 +298,15 @@ abstract class AggregationQuerySuite extends QueryTest with SQLTestUtils with Te
""".stripMargin),
Row(1, 20.0) :: Row(2, -0.5) :: Row(3, null) :: Row(null, 10.0) :: Nil)
checkAnswer(
sqlContext.sql(
"""
|SELECT key, mean(value)
|FROM agg1
|GROUP BY key
""".stripMargin),
Row(1, 20.0) :: Row(2, -0.5) :: Row(3, null) :: Row(null, 10.0) :: Nil)
checkAnswer(
sqlContext.sql(
"""