数据块:数据框将多列添加到一列

时间:2019-12-18 03:59:26

标签: dataframe databricks

假设我要在两列中添加两列 df col1 col2 col3
1 2 3 3 4 5

并添加一列 col1 col2 col3 SUM 1 2 3 6 3 4 5 12

df.withColumn(“ SUM”,col(col1)+ col(col2)+ col(col3))

但是我想动态地做:

array = [“ col1”,“ col2”,“ col3”]

df.withColumn(“ SUM”,* [colarray中用于x的colarray])

但是似乎我不确定在哪里可以在上面加一个加号“ +”。

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令:

val colList = df.schema.fields.map(struct=> col(struct.name))
val newDf = df.withColumn("Sum",colList.reduce(_+_))

这是通用命令:

  1. 第一个命令用于从数据框中获取所有列的列表。
  2. 第二个命令用于创建具有所有列之和的新列名Sum的新DF。