Используйте coalesce
, как показано ниже:
val df = Seq(
(10, Map(1 -> "a", 2 -> "b")),
(20, Map(3 -> "c"))
).toDF("idCol", "mapCol")
df.withColumn("mapValOf1", coalesce($"mapCol"(1), lit("unknown"))).show
// +-----+----------------+---------+
// |idCol| mapCol|mapValOf1|
// +-----+----------------+---------+
// | 10|[1 -> a, 2 -> b]| a|
// | 20| [3 -> c]| unknown|
// +-----+----------------+---------+