Github user viirya commented on a diff in the pull request:
https://github.com/apache/spark/pull/22944#discussion_r232689555
--- Diff: sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala
---
@@ -1556,6 +1556,20 @@ class DatasetSuite extends QueryTest with
SharedSQLContext {
df.where($"city".contains(new java.lang.Character('A'))),
Seq(Row("Amsterdam")))
}
+
+ test("SPARK-25942: typed aggregation on primitive type") {
+ val ds = Seq(1, 2, 3).toDS()
+
+ val agg = ds.groupByKey(_ >= 2)
+ .agg(sum("value").as[Long], sum($"value" + 1).as[Long])
--- End diff --
For `TypedAggregateExpression` input, `TypedColumn.withInputType` will
create `UnresolvedDeserializer` to resolve on `dataAttributes`.
But for non `TypedAggregateExpression`, `withInputType` actually doesn't do
anything. So such non typed aggregate expressions, we still resolve expressions
on `dataAttributes` + `groupingAttributes`.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]