Учитывая кадр данных со столбцами A, B и C, созданный с помощью "val x =", я хочу обновить столбец следующим образом:
x.withColumn("A", when ($"B" === "apple", "fruit").otherwise(col("C")))
Это фактически не меняет x что я считаю ожидаемым. Я думаю, что большинство людей создаст новый фрейм данных:
val y = x.withColumn("A", when ($"B" === "apple", "fruit").otherwise(col("B")))
И у вас есть обновление. Но как вы меняете x при создании нового фрейма данных? Я понимаю, что val x неизменен, но даже когда я объявляю «var x», это то же самое поведение. Это на самом деле не сохраняет изменения.
Является ли это Scala лучшей практикой всегда создавать новый DF?