Вы можете использовать функции агрегирования для вычисления сумм и объединения для добавления их в конце исходного 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|
+-----+-----+-----+