--指数化处理
热度*(π-1.8),然后四舍五入后分段 分段规则:【<=50(1/段),>50&<=100(10/段),>100&<=1000(30/段),>1000&<=5000(100/段),>5000(1000/段)】向上取段
结果在50以下的 ,每1为一个段
结果在50-100之间的,每10为一个段,
结果在100和1000之间的,每30为一个段
结果在1000和5000之间,每100为一个段
结果在5000以上,每1000为一个段
所有分段指数向上取
若搜索量为0,默认处理结果是1.34,四舍五入后为1,向上取段后为1
若搜索量为1,热度*(π-1.8)的处理结果是1.34,四舍五入后为1,向上取段后为1
若搜索量为40,热度*(π-1.8)的处理结果是53.6,四舍五入后为54,向上取段为60
依次类推
import org.apache.hadoop.hive.ql.exec.UDF;
/**
* TODO Comment of UDFIndexation Function: UDFIndexation() Sample :
* UDFIndexation(pv) return the indexation of the pv num
*
* @author pengxuan.lipx
*/
public class UDFIndexation extends UDF {
public long evaluate(long arguments, String varValues, Stri