I am trying to write the udf that can remove few keys from Map. But the Map's key and value type is not fixed, it can be String or Array or something else. How should I define such udf. I am using Spark version 2.4.4.
Below is my udf for Map[String, string]:
val mapKeys = //Seq[String]
val mapFilterUdf = udf[Map[String, String], Map[String, String]] {
map => map.filter{case (key, _) => mapKeys.contains(key)}
}
mapFilterUdf(dataFrame.col("column_name")).as(column.name)