zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    List数组细解
    iOS之缓存
    Java_String的操作
    weak的理解
    Swift_单利
    Java 抽象类和接口
    Java 继承中的问题
    java 成员变量与局部变量
    纪中第十九天
    cin快读
  • 原文地址:https://www.cnblogs.com/staryea/p/8515068.html
Copyright © 2011-2022 走看看