自定义udf添加一列

//创建得分窗口字典
    var dict= new mutable.HashMap[Double, Int]()
    for (i <- 0 to result_Score.length-1 ){
      dict.put(result_Score(i),i+1)
    }

    //自定义Udf函数 添加一列
    sparkHiveSession.udf.register("getWindow", (ss11: Double) => {
      val winno:Int = dict(ss11)
      winno
    })

    map (k -> v)

    map类型传进来一个k,获取v  如果这个k本身的值,与一个表中的值相等,就可以获得这个map的v

表

ss

33
44
55
66

map

33->1
44->2
55->3
77->4
                                               k本身的值
sparkHiveSession.udf.register("getWindow", (ss11: Double) => {
      val winno:Int = dict(ss11)
      winno   返回v的值
    })

select getWindow(ss)from 表

show:
1
2
3
4
原文地址:https://www.cnblogs.com/Bread-Wang/p/9929065.html