DataRicks:dataframe将多列添加到一列中

DataRicks:dataframe将多列添加到一列中,dataframe,databricks,Dataframe,Databricks,假设我将两列添加到一列中 df col1 col2 col3 1 2 3 3 4 5 并添加一个列 col1 col2 col3和 1 2 3 6 3 4 5 12 df.带列(“和”,列(列1)+列(列2)+列(列3)) 但我想动态地做: 数组=[“col1”、“col2”、“col3”] df.withColumn(“SUM”,*[col(x)表示colarray中的x]) 但似乎我不确定在哪里可以放一个加号“+” 您可以使用以下命令: va

假设我将两列添加到一列中 df col1 col2 col3
1 2 3 3 4 5

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

df.带列(“和”,列(列1)+列(列2)+列(列3))

但我想动态地做:

数组=[“col1”、“col2”、“col3”]

df.withColumn(“SUM”,*[col(x)表示colarray中的x])


但似乎我不确定在哪里可以放一个加号“+”

您可以使用以下命令:

val colList = df.schema.fields.map(struct=> col(struct.name))
val newDf = df.withColumn("Sum",colList.reduce(_+_))
这是通用命令:

  • 第一个命令用于从Dataframe获取所有列的列表
  • 第二个命令用于创建具有新列名
    Sum
    的新DF,其中包含所有列的总和

  • 有人有这个想法吗???我能在Pypark做什么?colist=[“col1”,“col2”]newdf=df.withColumn(“Sum”,colist.reduce(+))是的,您可以在pyspark中执行相同的操作。我得到了错误:“list”对象没有属性“reduce”