Как нам добавить значение столбца в spark с помощью Scala?

#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|
 ----- ----- -----