Scala-Spark Динамический вызов groupby и агг со значениями параметров

Я хочу написать пользовательскую функцию группировки и агрегирования, чтобы получить указанные пользователем имена столбцов и указанную пользователем карту агрегации.Я не знаю названия столбцов и карту агрегации заранее, Я хочу написать функцию, похожую на что-то вроде ниже. Но я новичок в 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()
}

и хочу назвать это как

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

Как я могу это сделать? Кто-нибудь может мне помочь.

Ответы на вопрос(1)

Ваш ответ на вопрос