Мне нужно добавить несколько столбцов в существующий фрейм данных искры, где имена столбцов приведены в списке, предполагая, что значения для новых столбцов постоянны, например, для заданных входных столбцов и фрейма данных
val columnsNames=List("col1","col2")
val data = Seq(("one", 1), ("two", 2), ("three", 3), ("four", 4))
и после добавления обоихстолбцы, при условии, что постоянные значения равны «val1» для col1 и «val2» для col2, кадр выходных данных должен быть
+-----+---+-------+------+
| _1| _2|col1 |col2|
+-----+---+-------+------+
| one| 1|val1 |val2|
| two| 2|val1 |val2|
|three| 3|val1 |val2|
| four| 4|val1 |val2|
+-----+---+-------+------+
я написал функцию для добавления столбцов
def appendColumns (cols: List[String], ds: DataFrame): DataFrame = {
cols match {
case Nil => ds
case h :: Nil => appendColumns(Nil, ds.withColumn(h, lit(h)))
case h :: tail => appendColumns(tail, ds.withColumn(h, lit(h)))
}
}
IsЕсть ли лучший способ и более функциональный способ сделать это.
спасибо