Hives UDF 编写入门

转载 2012年03月26日 18:08:03

大写转小写


package com.afan;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

public class UDFLower extends UDF{
    public Text evaluate(final Text s){
        if (null == s){
            return null;
        }
        return new Text(s.toString().toLowerCase());
    }
}

1加载udf jar包
afan@ubuntu:/usr/local/hadoop/hive$ bin/hive
Hive history file=/tmp/afan/hive_job_log_afan_201105150623_175667077.txt
hive> add jar udf_hive.jar;
Added udf_hive.jar to class path
Added resource: udf_hive.jar


2 创建udf函数
hive> create temporary function my_lower as 'com.afan.UDFLower';
OK
Time taken: 0.253 seconds


3 创建测试数据
hive> create table dual (info string);
OK
Time taken: 0.178 seconds
hive> load data local inpath 'data.txt' into table dual;
Copying data from file:/usr/local/hadoop/hive/data.txt
Copying file: file:/usr/local/hadoop/hive/data.txt
Loading data to table default.dual
OK
Time taken: 0.377 seconds
hive> select info from dual;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_201105150525_0003, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201105150525_0003
Kill Command = /usr/local/hadoop/bin/../bin/hadoop job  -Dmapred.job.tracker=localhost:9001 -kill job_201105150525_0003
2011-05-15 06:46:05,459 Stage-1 map = 0%,  reduce = 0%
2011-05-15 06:46:10,905 Stage-1 map = 100%,  reduce = 0%
2011-05-15 06:46:13,963 Stage-1 map = 100%,  reduce = 100%
Ended Job = job_201105150525_0003
OK
WHO
AM
I
HELLO
worLd

Time taken: 14.874 seconds

4使用udf函数
hive> select my_lower(info) from dual;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_201105150525_0002, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201105150525_0002
Kill Command = /usr/local/hadoop/bin/../bin/hadoop job  -Dmapred.job.tracker=localhost:9001 -kill job_201105150525_0002
2011-05-15 06:43:26,100 Stage-1 map = 0%,  reduce = 0%
2011-05-15 06:43:34,364 Stage-1 map = 100%,  reduce = 0%
2011-05-15 06:43:37,484 Stage-1 map = 100%,  reduce = 100%
Ended Job = job_201105150525_0002
OK
who
am
i
hello
world

Time taken: 20.834 seconds

相关文章推荐

Hive入门--3.UDF编写与使用

1. 编写UDF函数a) 继承org.apache.hadoop.hive.ql.exec.UDF类,实现evaluate()evaluate()函数在父类中没有package cn...

hive入门UDF之星座计算(根据hive编程指南)

环境准备: hadoop2.7+centos7+hive1.2.1+VirtualBox+xshll+eclipse+jdk1.8数据准备: 启动hadoop集群和hive: # start-dfs...

odps编写UDF 利用Gson提取JSON

利用阿里云ODPS平台解析json字符串。需要导入官方的MAVEN骨架,使用GSON包编写UDF,从json字符串中提取对象属性,计算所有对象属性的均值和方差,并且解决unterminated obj...
  • iamiman
  • iamiman
  • 2017年03月14日 14:34
  • 1108

采用java和python编写hive中的udf

在hive中,用户自定义函数(UDF)是一个允许用户扩展HiveQL的强大的功能。用户将自定义的函数加入到用户会话中(交互式的或者通过脚本执行的),它们就会像内置的函数一样使用。 编写UDF的java...

Hive UDF自定义函数编写小例子

感谢段海涛老师~ 先写一个java类,定义函数逻辑(静态代码块模拟字典) package club.drguo.hive; import java.util.HashMap; import org...
  • Dr_Guo
  • Dr_Guo
  • 2016年03月26日 22:03
  • 1506

MySQL:如何编写UDF

1.什么是UDF UDF顾名思义,就是User defined Function,用户定义函数。我们知道,MySQL本身支持很多内建的函数,此外还可以通过创建存储方法来定义函数。UDF为用户提供...
  • jsbba
  • jsbba
  • 2013年06月11日 08:40
  • 1028

利用eclipse编写自定义hive udf函数

在做日志分析的过程中,用到了hadoop框架中的hive,不过有些日志处理用hive中的函数处理显得力不从心,就需要用udf来进行扩展处理了 1  在eclipse中新建java project...
  • wisgood
  • wisgood
  • 2013年12月07日 12:12
  • 1335

利用eclipse编写自定义hive udf函数

在做日志分析的过程中,用到了hadoop框架中的hive,不过有些日志处理用hive中的函数处理显得力不从心,就需要用udf来进行扩展处理了 1  在eclipse中新建java project  ...

编写MYSQL插件(UDF)使其实现Split函数

.
  • Sidyhe
  • Sidyhe
  • 2016年01月19日 16:12
  • 1135

MySQL:如何编写UDF

1.什么是UDF UDF顾名思义,就是User defined Function,用户定义函数。我们知道,MySQL本身支持很多内建的函数,此外还可以通过创建存储方法来定义函数。UDF为用户提供了一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hives UDF 编写入门
举报原因:
原因补充:

(最多只允许输入30个字)