相关疑难解决方法(0)

Scala-Spark使用参数值动态调用groupby和agg

我想编写自定义分组和聚合函数来获取用户指定的列名和用户指定的聚合映射.我不知道前面的列名和聚合映射.我想写一个类似下面的函数.但我是Scala的新手,我无法解决它.

def groupAndAggregate(df: DataFrame,  aggregateFun: Map[String, String], cols: List[String] ): DataFrame ={
  val grouped = df.groupBy(cols)
  val aggregated = grouped.agg(aggregateFun)
  aggregated.show()
}
Run Code Online (Sandbox Code Playgroud)

并希望称之为

val listOfStrings =  List("A", "B", "C")
val result = groupAndAggregate(df, Map("D"-> "SUM", "E"-> "COUNT"), listOfStrings)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?任何人都可以帮助我.

customization scala group-by aggregate apache-spark

4
推荐指数
1
解决办法
3851
查看次数

标签 统计

aggregate ×1

apache-spark ×1

customization ×1

group-by ×1

scala ×1