鍍金池/ 問答/Scala  Linux  數(shù)據(jù)庫/ sparkSQL中的UDF是否可以使用查詢語句傳參

sparkSQL中的UDF是否可以使用查詢語句傳參

使用sparkSQL寫過一個UDF,根據(jù)業(yè)績計(jì)算提成,但是現(xiàn)在需求變了,根據(jù)職位和部門確定提成比例,下面舉個例子

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,現(xiàn)在里面的(0,6000],(6000,10000],(10000,20000]這幾個區(qū)間的上下界都需要通過SQL查詢才能得到,而且提成比例0.10,0.13,0.20也需要通過SQL查詢才能得到,UDF還能用嗎?或者說有沒有什么替代方案?

回答
編輯回答
憶當(dāng)年

很簡單,直接為這個UDF加參數(shù)不就行了

2017年5月16日 04:30