@@ -69,7 +69,8 @@ class GroupedData protected[sql](
69
69
df : DataFrame ,
70
70
groupingExprs : Seq [Expression ],
71
71
private val groupType : GroupedData .GroupType ) {
72
- private [sql] implicit def toDF (aggExprs : Seq [NamedExpression ]): DataFrame = {
72
+
73
+ private [this ] def toDF (aggExprs : Seq [NamedExpression ]): DataFrame = {
73
74
val aggregates = if (df.sqlContext.conf.dataFrameRetainGroupColumns) {
74
75
val retainedExprs = groupingExprs.map {
75
76
case expr : NamedExpression => expr
@@ -94,7 +95,7 @@ class GroupedData protected[sql](
94
95
}
95
96
96
97
private [this ] def aggregateNumericColumns (colNames : String * )(f : Expression => Expression )
97
- : Seq [ NamedExpression ] = {
98
+ : DataFrame = {
98
99
99
100
val columnExprs = if (colNames.isEmpty) {
100
101
// No columns specified. Use all numeric columns.
@@ -111,10 +112,10 @@ class GroupedData protected[sql](
111
112
namedExpr
112
113
}
113
114
}
114
- columnExprs.map { c =>
115
+ toDF( columnExprs.map { c =>
115
116
val a = f(c)
116
117
Alias (a, a.prettyString)()
117
- }
118
+ })
118
119
}
119
120
120
121
private [this ] def strToExpr (expr : String ): (Expression => Expression ) = {
@@ -167,10 +168,10 @@ class GroupedData protected[sql](
167
168
* @since 1.3.0
168
169
*/
169
170
def agg (exprs : Map [String , String ]): DataFrame = {
170
- exprs.map { case (colName, expr) =>
171
+ toDF( exprs.map { case (colName, expr) =>
171
172
val a = strToExpr(expr)(df(colName).expr)
172
173
Alias (a, a.prettyString)()
173
- }.toSeq
174
+ }.toSeq)
174
175
}
175
176
176
177
/**
@@ -223,10 +224,10 @@ class GroupedData protected[sql](
223
224
*/
224
225
@ scala.annotation.varargs
225
226
def agg (expr : Column , exprs : Column * ): DataFrame = {
226
- (expr +: exprs).map(_.expr).map {
227
+ toDF( (expr +: exprs).map(_.expr).map {
227
228
case expr : NamedExpression => expr
228
229
case expr : Expression => Alias (expr, expr.prettyString)()
229
- }
230
+ })
230
231
}
231
232
232
233
/**
@@ -235,7 +236,7 @@ class GroupedData protected[sql](
235
236
*
236
237
* @since 1.3.0
237
238
*/
238
- def count (): DataFrame = Seq (Alias (Count (Literal (1 )), " count" )())
239
+ def count (): DataFrame = toDF( Seq (Alias (Count (Literal (1 )), " count" )() ))
239
240
240
241
/**
241
242
* Compute the average value for each numeric columns for each group. This is an alias for `avg`.
0 commit comments