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