Ho un dataframe Spark con diverse colonne. Voglio aggiungere una colonna al dataframe che è la somma di un certo numero di colonne.Aggiunta di una colonna di rowsum attraverso un elenco di colonne in Spark Dataframe
Ad esempio, il mio dati assomiglia a questo:
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
Voglio una colonna aggiunto sommando le righe per colonne specifiche:
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
So che è possibile aggiungere colonne insieme se conoscere le colonne specifiche da aggiungere:
val newdf = df.withColumn("sumofcolumns", df("var1") + df("var2"))
Ma è possibile passare un elenco di colori mn nomi e aggiungerli insieme? In base al largo di questa risposta che è fondamentalmente quello che voglio, ma utilizza l'API di Python al posto di Scala (Add column sum as new column in PySpark dataframe) penso che qualcosa di simile potrebbe funzionare:
//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)
Questo getta la somma valore di errore non è membro di org.apache.spark.sql.DataFrame. C'è un modo per sommare le colonne?
Grazie in anticipo per il vostro aiuto.