美文网首页
Hive之自定义函数

Hive之自定义函数

作者: 学师大术 | 来源:发表于2019-06-12 20:43 被阅读0次

    自定义函数是什么

    当hive内置函数无法满足业务需求的时候,可以通过编写用户自定义函数来使用。
    1、按照定义函数方式分类:
    ~ 普通用户函数UDF,操作单行数据行,
    ~ 用户自定义聚合函数UDAF,用于接受多行数据转换成一行
    ~ 用户定义表生产函数UDTF,用于输入单行数据,输出多行数据。
    2、照使用方法分类:
    ~ 临时函数,只在当前会话有效。
    ~ 永久函数,可以在多个会话中使用。

    如何实现UDF

    1.编写普通UDF函数:

    一个普通UDF必须继承自“org.apache.hadoop.hive.ql.exec.UDF”。
    一个普通UDF必须至少实现一个evaluate()方法,evaluate函数支持重载。

    2.代码实现:

    import org.apache.hadoop.hive.ql.exec.UDF;
    //1.继承UDF
    public class CompareFeature extends UDF  {
        //实现evaluate
           public Double evaluate(String feature1,String feature2){
            try
            {
                /**
                 * 你的代码逻辑
                 */
            }catch(Exception e){
                e.printStackTrace();
                System.out.println("++++++"+e.getMessage());
            }
            System.out.println("-----"+feature1+"-----"+feature2);
            return 3.d;
        }
    }
    

    3.创建函数

    1.创建临时函数:

    //
    CREATE TEMPORARY FUNCTION addDoubles AS 'Test1.CompareFeature' using jar 'hdfs://hacluster/tmp/HiveTest1.jar';
    

    2.创建永久函数

    CREATE FUNCTION addDoubles AS 'Test1.CompareFeature' using jar 'hdfs://hacluster/tmp/HiveTest1.jar';
    

    验证查询效果:

    SELECT addDoubles(1,2);
    

    查看所有的function:

    show functions
    

    重新加载function:

    reload function 函数名
    

    相关文章

      网友评论

          本文标题:Hive之自定义函数

          本文链接:https://www.haomeiwen.com/subject/htprfctx.html