UDF
1.初始化需要判断参数个数，类型是否相同
2.检查值是否null
3.对值进行操作
4.显示信息
实现思路：
1.通用代码都写到父类
1.1类型判断，公有变量，初始化一些必要操作
2.子类初始化具体变量，只实现变化操作
3.体会深刻
1.对大于和小于两个UDF进行了封装
2.实现本身不复杂
主要功能将UDF转化为GenericUDF
1.反射拿到UDF实例
2.获取当前GenericUDF参数类型
3.根据此参数类型，得到对应方法
4.在evalute中调用改方法
nice