HIVE- 新建UDF范例
首先pom文件导入依赖,Hadoop和hive的依赖导入自己机器的版本,hive记得导jdbc
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-service</artifactId>
<version>1.2.</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.2.</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.2.</version>
</dependency>
新建UDF的Java类
package com.hive.udf; import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; /**
* Created by lenovo on 2017/10/26.
*/
public class DateTransforUDF extends UDF{ public static final SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //匹配讲要格式化的日期格式
public static final SimpleDateFormat outputFormat=new SimpleDateFormat("yyyyMMddHHmmss"); //要格式化的最终格式
/*
2013-02-17 10:38:34
20130217103834
*/ public Text evaluate(final Text input){
Text output=new Text(); if (null==input){
return null;
}
String inputDate = input.toString().trim();
if(null==inputDate){
return null;
}
try {
Date parseDate = inputFormat.parse(inputDate);
String outputDate = outputFormat.format(parseDate);
output.set(outputDate);
} catch (ParseException e) {
e.printStackTrace();
return output;
}
return output;
} public static void main(String[] args) {
System.out.println(new DateTransforUDF().evaluate(new Text("2013-02-17 10:38:34")));
}
}
打jar包,上传到Linux,
hive (register_info)> add jar /root/hive_udf/BaseTest-1.0-SNAPSHOT.jar
> ;
Added [/root/hive_udf/BaseTest-1.0-SNAPSHOT.jar] to class path
Added resources: [/root/hive_udf/BaseTest-1.0-SNAPSHOT.jar]
hive (register_info)> create temporary function Tdate as 'com.test.OnlyDateUDF';
OK
Time taken: 0.006 seconds
HIVE- 新建UDF范例的更多相关文章
- HIVE的UDF
HIVE的UDF 新建java工程,导入hive相关包,导入hive相关的lib. 创建类继承UDF 自己编写一个evaluate方法,返回值和参数任意. 为了能让mapred ...
- Hive 10、Hive的UDF、UDAF、UDTF
Hive自定义函数包括三种UDF.UDAF.UDTF UDF(User-Defined-Function) 一进一出 UDAF(User- Defined Aggregation Funcation) ...
- hive premanent udf 发布...
起因: hive premanent udf 发布成功,但是hue 无法加载使用(但是cli 是可用的) ,处理半天,依然不可用!后来发现重启hiveserver2 就可以了 具体步骤如下: ...
- hive中UDF、UDAF和UDTF使用
Hive进行UDF开发十分简单,此处所说UDF为Temporary的function,所以需要hive版本在0.4.0以上才可以. 一.背景:Hive是基于Hadoop中的MapReduce,提供HQ ...
- hive下UDF函数的使用
1.编写函数 [java] view plaincopyprint?package com.example.hive.udf; import org.apache.hadoop.hive.ql. ...
- hive新建分区表
hive新建分区表语句如下: create table table_name (col1_name string comment '备注1', col2_name string comment '备注 ...
- 在hive中UDF和UDAF使用说明
Hive进行UDF开发十分简单,此处所说UDF为Temporary的function,所以需要hive版本在0.4.0以上才可以. 一.背景:Hive是基于Hadoop中的MapReduce,提供HQ ...
- 【转】hive中UDF、UDAF和UDTF使用
原博文出自于: http://blog.csdn.net/liuj2511981/article/details/8523084 感谢! Hive进行UDF开发十分简单,此处所说UDF为Tempora ...
- hive的UDF读取配置文件
hive的UDF读取配置文件 实现步骤 在读取配置文件的写为./file_name,然后在添加UDF的时候把配置文件也加入资源就好了: add jar xxx.jar; add file file_n ...
随机推荐
- 快速自检电脑是否被黑客入侵过(Linux版)
前言 严谨地说, Linux只是一个内核, `GNU Linux`才算完整的操作系统, 但在本文里还是用通俗的叫法, 把`Ubuntu`,`Debian`,`RedHat`,`CentOS`,`Arc ...
- Oracle集群和灾备解决方案介绍
Oracle本身有各种各样的解决方案,本文主要是对以下几种解决方案做一下简单的梳理. 1. Oracle Rac解决方案. Oracle Rac主要通过两台Oracle服务器来组件集群,提高Or ...
- 初始化map和list的两种写法
第一种方法(常用方法): //初始化List List list = new ArrayList(); list.add("string1"); list.add("st ...
- 安装wamp后 异常Exception Exception in module wampmanager.exe at 000F15A0
系统环境:Windows 2008 R2 64bit 安装环境:wampserver2.4-x64 按照正常windows安装程序,完成WAMP Server程序安装,安装完成启动WAMP Serve ...
- PHP中Soap模块安装与使用例子
PHP5中的这个SOAP扩展目的是为了实现PHP对Web services的支持.与其它实现PHP对Web services的支持的方法不同,SOAP扩展是用C写的,因此它比其它方法具有速度优势 SO ...
- UFLDL深度学习笔记 (四)用于分类的深度网络
UFLDL深度学习笔记 (四)用于分类的深度网络 1. 主要思路 本文要讨论的"UFLDL 建立分类用深度网络"基本原理基于前2节的softmax回归和 无监督特征学习,区别在于使 ...
- requestFullscreen实现全屏展示
requestFullscreen实现全屏展示. var fullContainer = document.getElementById('fullScreenContainer'); //先把元素展 ...
- TortoiseSVN与VisualSVN Server搭建SVN版本控制系统(转)
地址:http://www.cnblogs.com/xing901022/p/4399382.html
- centos7.0 关闭防火墙
1.关闭firewall:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止fire ...
- 【BZOJ4804】欧拉心算 莫比乌斯反演+线性筛
[BZOJ4804]欧拉心算 Description 给出一个数字N Input 第一行为一个正整数T,表示数据组数. 接下来T行为询问,每行包含一个正整数N. T<=5000,N<=10 ...