hive UDF
来源:互联网 发布:微信支付html源码 编辑:程序博客网 时间:2024/05/21 10:55
UDF(user defined function).hive的UDF包含三种:UDF支持一个输入产生一个输出,UDTF支持一个输入多个输出输出,UDAF支持多输入一输出。
UDF用法:
1、UDF函数可以直接应用于select语句,对查询结构做格式化处理后,再输出内容。
2、编写UDF函数的时候需要注意一下几点:
a)自定义UDF需要继承org.apache.hadoop.hive.ql.exec.UDF
b)需要实现evaluate函。
c)evaluate函数支持重载。
还支持可变参数 evaluate(String... strs)
for ( int i = 0; i < strs. length ; i++) {
}
3、以下是大小写字母转换的UDF。evaluate函数有两个参数一个是待处理的数据,一个是处理方式
Hive的UDF开发只需要重构UDF类的evaluate函数即可。例:
package udftest;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class L_or_U extends UDF {
public Text evaluate(Text t,String up_or_lower){
if(t==null){
return null;
}else if(up_or_lower.equals("lowercase")){
return new Text(t.toString().toLowerCase());
}else if(up_or_lower.equals("uppercase")){
return new Text(t.toString().toUpperCase());
}else
return null;
}
}
4.然后导出jar包,eclipse中选中工程右击->export->jar file->next->选择要导出的类及存放位置和jar包名->finish
a)把程序打包后放到目标机器上去;
b)进入hive客户端,添加jar包:hive>add jar /run/jar/udf_test.jar;
c)创建临时函数:hive>CREATE TEMPORARY FUNCTION L_U AS 'udftest.L_or_U';(单引号的内容是包名加类名)
d)查询HQL语句:hive> select L_U(id,'uppercase') from course;(L_U是函数名,id是列名,uppercase是L_or_U类中evalute的参数up_or_lower)
e)销毁临时函数:hive> DROP TEMPORARY FUNCTION add_example;
5、细节在使用UDF的时候,会自动进行类型转换
- hive udf
- hive-udf
- hive UDF
- hive UDF
- hive UDF
- hive udf
- hive udf
- Hive UDF
- HIVE UDF
- hive udf
- hive UDF
- 开发hive UDF函数
- Hive UDF 开发
- HIVE UDF整理
- hive UDF开发注意事项
- hive开发UDF随记
- HIVE 自定义函数 UDF
- HIVE UDF函数(一)
- js数组依据下标删除元素
- sed 暂存空间详解
- jdk1.5 后 的新特性—枚举
- powerDesigner学习一
- netshareadd
- hive UDF
- 关于OleDB连接Excel的Extended Properties(扩展属性)HDR=YES; IMEX=2个人理解心得
- 二分查找
- Java - 线程基础
- StrToInteger
- SP2010开发和VS2010专家"食谱"--第六章节--Web Services和REST(3)--使用Fiddler
- 【操作系统】可变分区存储管理,模拟实现
- 黑马程序员_HTML5新特性总结
- MemberCache学习摘要