Если я правильно понял, то вы можете сделать это, используя foldLeft
Предположим, у вас есть dataframe
df как
val df: DataFrame = Seq(("123"), ("123"), ("223"), ("223")).toDF()
Вы можете создать list
имен столбцов и операции / функции, которые вы вызываете как
val list = List(
("seq", lit("this is seq")),
("id", lit("this is id")),
("type" , lit("thisis type"))
)
Теперь вы можете использовать foldLeft
, чтобы использовать этот список как
list.foldLeft(df){(tempDF, listValue) =>
tempDF.withColumn(listValue._1, listValue._2)
}
Окончательный результат:
+-----+-----------+----------+-----------+
|value|seq |id |type |
+-----+-----------+----------+-----------+
|123 |this is seq|this is id|thisis type|
|123 |this is seq|this is id|thisis type|
|223 |this is seq|this is id|thisis type|
|223 |this is seq|this is id|thisis type|
+-----+-----------+----------+-----------+
Надеюсь, это поможет!