В чем проблема создать коллекцию [Column] и передавать её обычным способом: .agg(cols.head, cols.tail: _*) ? Не вижу здесь никакой сложности, возможно, ваша задача на самом деле шире?
Мне нужно условия агрегации каждый раз задавать динамически, их количество и сама функция будет меняться
мб некорректно обозначил проблему - рандомный пример со статикой
.groupBy($"some_fields")
.agg(
concat_ws(" ", collect_list("par1")) as "concat1",
max("par2")
)
Мне хотелось бы иметь возможность делать как-то так
val concat = "concat_ws(" ", collect_list("par1")) as "concat1""
val max = "max("par2") as max2"
val aggSeq = Seq(concat, max)
.groupBy($"some_fields")
.agg(aggSeq)
т.е. заранее мне не известны ни функции агрегации ни колонки для них