• 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;

  • 相关阅读:
    python常见对象的结构
    python不可变对象
    python常用对象使用方法
    python对象分类
    Binary Tree Serialization
    Two nodes of a BST are swapped, correct the BST
    Redis数据库
    CGI和FastCGI的区别
    mysql索引
    Python和Golang的应用
  • 原文地址:https://www.cnblogs.com/staryea/p/8515068.html
Copyright © 2020-2023  润新知