• hive java编写udf函数


    (一)创建JAVA 代码--例子

    package hiveOpt;

    import org.apache.hadoop.hive.ql.exec.UDF;
    import org.apache.hadoop.io.Text;

    public class splitMax extends UDF {

    public static int getMax(String[] arr) {
    int max = Integer.valueOf(arr[0]);
    for (int i = 1; i < arr.length; i++) {
    if (Integer.valueOf(arr[i]) > max) {
    max = Integer.valueOf(arr[i]);
    }
    }
    return max;
    }

    public Text evaluate(String mdimlr)

    {
    Text result = new Text();
    String[] a = mdimlr.split(",");

    result.set(String.valueOf(getMax(a)));
    return result;

    }

    }

    (二)上传jar到hdfs

    hadoop fs -put /data/soft/splitMax.jar /tmp

    (三)登录hive命令行加载jar

    hive> add jar hdfs:///tmp/splitMax.jar;
    hive> create temporary function splitmax as 'hiveOpt.splitMax';
    hive> show funcations
    hive> select splitmax(id) from wobcongfu;

    ( 四)测试自定义函数
    select phone_num,max(myCol1)
    from temp_qiu_test1
    LATERAL VIEW explode(split(col1,',')) myTable1 AS myCol1
    group by phone_num;

  • 相关阅读:
    Spring:dispatchservlet
    信息系统设计
    数据流图的绘制方法
    信息系统管理工程师学习笔记
    JS语法学习笔记
    jQuery
    用Excel生成Sql
    JAVA-Reflect
    Java创建对象的过程
    有关死锁那点事儿
  • 原文地址:https://www.cnblogs.com/staryea/p/8515068.html
Copyright © 2020-2023  润新知