//创建得分窗口字典 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表ss33445566map33->144->255->377->4 k本身的值sparkHiveSession.udf.register("getWindow", (ss11: Double) => { val winno:Int = dict(ss11) winno 返回v的值 })select getWindow(ss)from 表show:1234