#scala #apache-spark
#scala #apache-spark
Вопрос:
У меня есть такие данные
------------- -------- --------
| COl1| Col2| COL3|
------------- -------- --------
|A .......... | 56102| 45991|
|B........... | 25336| 23099|
------------- -------- --------
это должно быть так
------------- -------- --------
| COl1| Col2| COL3|
------------- -------- --------
|A .......... | 56102| 45991|
|B........... | 25336| 23099|
|Total....... | 58368| 69090|
------------- -------- --------
нужна строка с общим значением, и значение должно быть суммой развертки строки во фрейме данных.
Комментарии:
1. Просто используйте объединение
Ответ №1:
Вы можете использовать функции агрегирования для вычисления сумм и объединение, чтобы добавить их в конце исходного df. Чтобы это сработало, вам просто нужно убедиться, что имена столбцов совпадают.
Это будет выглядеть следующим образом:
val df = Seq(("A", 56102, 45991), ("B", 25336, 23099))
.toDF("COL1", "COL2", "COL3")
val sums = df.select(lit("Total") as "COL1", sum('COL2) as "COL2", sum('COL3) as "COL3")
df.union(sums).show()
----- ----- -----
| COL1| COL2| COL3|
----- ----- -----
| A|56102|45991|
| B|25336|23099|
|Total|81438|69090|
----- ----- -----