@羲凡——只为了更好的活着
SparkSql 自定义Map合并函数——保留旧Map有但新Map没有的Key
业务中有些hive/cassandra表的部分字段是map,如果要更新mapq且保留旧Map有但新Map没有的Key,该如何操作?我的解决方式是自定义如下函数
spark.udf.register("merge_map",
(newMap: Map[String,String],originalMap: Map[String,String]) => {
if (newMap == null) originalMap
else if (originalMap == null) newMap
else {
var tmpMap = newMap
newMap.map(t => {
if (t._2=="" || t._2=="null") tmpMap = tmpMap.-(t._1)
})
originalMap ++ tmpMap
}
})
====================================================================
@羲凡——只为了更好的活着
若对博客中有任何问题,欢迎留言交流