我有一个包含多个列的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
Run Code Online (Sandbox Code Playgroud)
我想要添加一列来汇总特定列的行:
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
Run Code Online (Sandbox Code Playgroud)
我知道如果您知道要添加的特定列,可以将列添加到一起:
val newdf = df.withColumn("sumofcolumns", df("var1") + df("var2"))
Run Code Online (Sandbox Code Playgroud)
但是可以传递列名列表并将它们一起添加吗?基于这个答案基本上是我想要的,但它使用的是python API而不是scala(在PySpark数据框中添加列和作为新列)我觉得这样的事情会起作用: …