zoukankan      html  css  js  c++  java
  • 【hadoop】第一个UDF小例子 此博文包含图片 (2013-09-23 19:19:13)

    之前做过一个例子,但是有问题,中间因为其他事情给耽搁了,就忘记了,今天帮同事查数据,要写一个UDF,又发现了同一个问题,最终解决了。下边整理一下我的小例子,由于hive表中存放的时间是Long型的字符串,需要将其转化成时间:

    1、首先创建一个java项目,根据需要命名。

    2、导入hive需要的jar包:

    3、在项目中创建一个类,extends UDF:
    package cn.hive.udf;

    import java.sql.Date;
    import java.text.SimpleDateFormat;
    import org.apache.hadoop.hive.ql.exec.UDF;

    public class TimeFormat extends UDF {
     public String evaluate(String num){
      Date d=new Date(Long.decode(num));
      SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:MM:SS");
      return sdf.format(d) ;
     }
    }

    这里要注意的是方法的名称一定要定义成evaluate。

    4、导出jar包:

    选中TimeFormat类文件,右击export,选择jar file:

    5、将jar包上传到服务器

    6、准备数据,time为Long型数字的string类型的数据文件:
    7、将jar加入到hive中:

    hive> add jar /home/HelloUD.jar;

    8、创建一个临时函数,指向上边编译的类

    hive > create temporary function formatTime as 'cn.hive.udf.TimeFormat';

    10、可以调用这个函数了:

    hive> select formatTime(time) from s_show;

    11、调用完这个函数可以删掉

    hive> drop temporary function formatTime ;

  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/qyb-bk/p/6775455.html
Copyright © 2011-2022 走看看