使用sparkSQL写过一个UDF,根据业绩计算提成,但是现在需求变了,根据职位和部门确定提成比例,下面举个例子
spark.udf.register("mmyjtc", (yj: Float) => {
(yj) match {
case v if (v <= 6000) => {
v * 0.10
}
case v if (v > 6000 && v <= 10000) => {
v * 0.13
}
case v if (v > 10000 && v <= 20000) => {
v * 0.20
}
case v => -1.0
}
})
这是以前的UDF,现在里面的(0,6000],(6000,10000],(10000,20000]这几个区间的上下界都需要通过SQL查询才能得到,而且提成比例0.10,0.13,0.20也需要通过SQL查询才能得到,UDF还能用吗?或者说有没有什么替代方案?
很简单,直接为这个UDF加参数不就行了