//创建得分窗口字典
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