Spark DataFrameに新しい列を追加する

下記のようにUDF使うか, mapでDataFrameごと新しくするか、なのか?

import spark.implicits._
import org.apache.spark.sql.functions._

// Example data
val df = Seq(
    (1, 2),
    (3, 4),
    (5, 6)
).toDF("x", "y")

// Define function
val hoge = udf({(x: Int, y: Int) =>
    x + y
})

val x = df.withColumn("z", hoge($"x", $"y"))
x.show()

stackoverflow.com