Agregar una columna de filas de filas en una lista de columnas en Spark Dataframe

Tengo un marco de datos Spark con varias columnas. Quiero agregar una columna al marco de datos que es una suma de un cierto número de columnas.

Por ejemplo, mis datos se ven así:

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

Quiero una columna agregada sumando las filas para columnas específicas:

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

Sé que es posible agregar columnas juntas si conoce las columnas específicas para agregar:

val newdf = df.withColumn("sumofcolumns", df("var1") + df("var2"))

Pero, ¿es posible pasar una lista de nombres de columna y agregarlos? Basado en esta respuesta, que es básicamente lo que quiero, pero está usando la API de Python en lugar de scala (Agregar suma de columna como nueva columna en el marco de datos PySpark) Creo que algo como esto funcionaría:

//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)

Esto arroja el valor de error sum no es miembro de org.apache.spark.sql.DataFrame. ¿Hay alguna manera de sumar columnas?

Gracias de antemano por tu ayuda.

Respuestas a la pregunta(4)

Su respuesta a la pregunta