df.withColumn("cols", $"col1" + $"col2").orderBy(desc("id")).select($"id",
$"cols")
withColumn возвращает новый фрейм данных со столбцом «cols».Затем выполните orderBy для столбца «id» и выберите столбцы «id» и «cols».В качестве альтернативы, вы также можете просто удалить столбцы после функции dropBy (columnNames *) function
scala> val df = Seq((2, 10, 20), (1, 5, 30), (3, 25, 15)).toDS.select($"_1" as "id", $"_2" as "col1", $"_2" as "col2")
df: org.apache.spark.sql.DataFrame = [id: int, col1: int ... 1 more field]
scala> df.show
+---+----+----+
| id|col1|col2|
+---+----+----+
| 2| 10| 10|
| 1| 5| 5|
| 3| 25| 25|
+---+----+----+
scala> df.withColumn("cols", $"col1" + $"col2").orderBy(desc("id")).select($"id", $"cols").show
+---+----+
| id|cols|
+---+----+
| 3| 50|
| 2| 20|
| 1| 10|
+---+----+
scala> df.withColumn("cols", $"col1" + $"col2").orderBy(desc("id")).drop("col1", "col2").show
+---+----+
| id|cols|
+---+----+
| 3| 50|
| 2| 20|
| 1| 10|
+---+----+
scala> df.withColumn("cols", $"col1" + $"col2").orderBy(desc("id")).show
+---+----+----+----+
| id|col1|col2|cols|
+---+----+----+----+
| 3| 25| 25| 50|
| 2| 10| 10| 20|
| 1| 5| 5| 10|
+---+----+----+----+