Helllo朋友,
我有以下功能签名
def groupAndAggregate(inputDS: Dataset[Row], aggregateFunMap: Map[String, String], aggregateColumns: List[String]):Dataset[Row]={
// statements
}
其中aggregateFunMap是一个Map,包含作为键的列和要执行的相应聚合操作
例如: - val aggregateFunMap=Map("amount"->"avg","amount"->"sum")
而且,aggregateColumns
是一个List,其中包含用于按操作分组的列
例如: - val aggregateColumns=List("amount")
我有以下代码来查找按操作和聚合执行分组后的最终结果。
{
val grouped = inputDS.groupBy(aggregateColumns.head, aggregateColumns.tail: _*)
grouped.agg(aggregateFunMap)
}
但是当我在同一列上传递了多个聚合操作的Map时,它会返回一个不正确的结果,即;最终的数据帧只包含一个聚合操作。
如果有人可以帮助我,对我来说将是很有帮助的。