У меня есть фреймворк Spark с несколькими столбцами. Я хочу добавить столбец к файлу данных, который представляет собой сумму определенного количества столбцов.
Например, мои данные выглядят следующим образом:
ID var1 var2 var3 var4 var5
a 5 7 9 12 13
b 6 4 3 20 17
c 4 9 4 6 9
d 1 2 6 8 1
Я хочу, чтобы колонка добавила суммы строк для определенных столбцов:
ID var1 var2 var3 var4 var5 sums
a 5 7 9 12 13 46
b 6 4 3 20 17 50
c 4 9 4 6 9 32
d 1 2 6 8 10 27
Я знаю, что можно добавлять столбцы вместе, если вы знаете конкретные столбцы для добавления:
val newdf = df.withColumn("sumofcolumns", df("var1") + df("var2"))
Но можно ли передать список имен столбцов и добавить их вместе? Исходя из этого ответа, который в основном я хочу, но он использует API-интерфейс python вместо scala (Добавить сумму столбца в виде нового столбца в фреймворке PySpark). Я думаю что-то вроде этого будет работать:
//Select columns to sum
val columnstosum = ("var1", "var2","var3","var4","var5")
// Create new column called sumofcolumns which is sum of all columns listed in columnstosum
val newdf = df.withColumn("sumofcolumns", df.select(columstosum.head, columnstosum.tail: _*).sum)
Это вызывает значение ошибки, которое не является членом org.apache.spark.sql.DataFrame. Есть ли способ суммировать столбцы?
Заранее благодарим за помощь.