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 ;

  • 相关阅读:
    Python微信机器人
    Jumpserver开源跳板机系统介绍
    Django---django-rest-framework(drf)-luffycity projects
    Linux-Mysql 遗忘密码如何解决?
    up line
    linux
    vue中computed(计算属性)
    input框在浏览器上显示一个叉,去掉方法
    如何通过命令行来克隆git
    手机抓包fiddler配置及使用教程
  • 原文地址:https://www.cnblogs.com/qyb-bk/p/6775455.html
Copyright © 2011-2022 走看看