У меня есть потоковый Dataframe, который я хочу вычислить min
и avg
по некоторым столбцам.
Вместо того, чтобы получать отдельные результирующие столбцы min
и avg
после применения операций, яхочу объединить минимальный и средний выходные данные в один столбец.
Фрейм данных выглядит следующим образом:
+-----+-----+
| 1 | 2 |
+-----+-----+-
|24 | 55 |
+-----+-----+
|20 | 51 |
+-----+-----+
Я думал, что для этого я использую кортеж Scala, но это непохоже, работает:
val res = List("1","2").map(name => (min(col(name)), avg(col(name))).as(s"result($name)"))
Весь используемый код:
val res = List("1","2").map(name => (min(col(name)),avg(col(name))).as(s"result($name)"))
val groupedByTimeWindowDF1 = processedDf.groupBy($"xyz", window($"timestamp", "60 seconds"))
.agg(res.head, res.tail: _*)
Я ожидаю, что результат после применения математических операций min
и avg
будет:
+-----------+-----------+
| result(1)| result(2)|
+-----------+-----------+
|20 ,22 | 51,53 |
+-----------+-----------+
Как мне написать выражение?