美文网首页Hive
Hive的UDF编程

Hive的UDF编程

作者: 明明德撩码 | 来源:发表于2018-03-10 07:06 被阅读20次

    官方地址:https://cwiki.apache.org/confluence/display/Hive/HivePlugins

    什么是UDF(user-Define-Function)?用户定义的函数。

    查看hive自带的函数。

    show funtion;

    查询某个函数的详细使用手册

    desc function extended split ;

    UDF几种类型

    UDF(User-Defined-Function)

    一进一出

    UDAF(User-Defined Aggregation Funcation)

    聚集函数,多进一出;

    类似于:count/max/min

    UDTF(User-Defined Table-Generating Functions)

    一进多出;

    如lateral view explore()

    UDF自定步骤

    继承UDF ->实现evaluste方法

    Creating Custom UDFs

    First, you need to create a new class that extends UDF, with one or more methods named evaluate.

     
    import org.apache.hadoop.hive.ql.exec.UDF;
    import org.apache.hadoop.io.Text;
     
    public final class MyLower extends UDF {
      public Text evaluate(final Text s) {
        if (s == null) { return null; }
        return new Text(s.toString().toLowerCase());
      }
    }
    
    2:打开eclipse创建maven工程并添加依赖

    hive-client依赖jar包。

    3、把MyLower 类打个jar包
    4、(方式1)进入hive客户端,添加jar包:hive>add jar /opt/datas/MyLower.jar;
    5、创建临时函数:

    hive>CREATE TEMPORARY FUNCTION MyLower AS 'com.example.hive.udf.MyLower ';

    6、show function;
    7、使用 hive>select empno,mylower(ename) from emp ;
    (方式2)

    CREATE FUNCTION myfunc AS '类路径' USING JAR 'hdfs:///path/to/jar';

    例子:

    相关文章

      网友评论

        本文标题:Hive的UDF编程

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