У меня есть Spark Dataframe с необязательным полем X. Если поле вообще не существует, я хочу создать его и установить равным столбцу A. Если поле существует, но имеет значение null, я хочу установить егоравно столбцу A. Если поле существует и не является нулевым, я хочу использовать значение, уже находящееся внутри него.
В настоящее время я делаю это следующим образом:
val df = spark.read.json("records.json")
val dfWithColX = if (Try(df("X")).isSuccess) {
df.withColumn("X", when(col("X").isNull, col("A")).otherwise(col("X")))
} else df.withColumn("X", col("A"))
Есть ли более эффективный способ сделать это?