用Java编写的第一个UDF
来源:互联网 发布:上海大华电子秤软件 编辑:程序博客网 时间:2024/05/29 17:24
准备:
1.在Hive中以创建t_emp表,并且put数据如下:
2.在Eclipse 中搭建UDF编写环境,导入Hive相关包
实现:
1.编写一个UDF类,继承UDF
package com.rdz.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
public class MyStrLen extends UDF{
public int evaluate(String str) {
int res=0;
if("".equals(str) || str==null) {
res=0;
} else {
res=str.length();
}
return res;
}
}
2.将工程打包成.jar包形式
3.将jar包添加到Hive中
add jar /home/rdz/hadoop1/MyUDF.jar;
4.自定义函数
create temporary function strlen as 'com.rdz.udf.MyStrLen';
5.使用自定义函数
select name,strlen(name) from t_emp;
结果如下:
6.使用完,可以删除该自定义函数
drop temporary function strlen;
自己出错的地方(比较郁闷的-_-||)
FAILED: SemanticException [Error 10014]: Line 1:7 Wrong arguments 'name': No matching method for class com.rdz.udf.MyStringLength with (string). Possible choices:
解决:将自定义的类中的函数名改为evaluate。
- 用Java编写的第一个UDF
- 用MyEclipse编写第一个Java应用程序的步骤:
- 第一个Java程序(HelloWorld)的编写
- 第一个hive UDF函数
- pig的udf编写
- 编写第一个 Java 应用程序
- 编写第一个 Java 程序:
- 第一个android访问java编写的webservice程序
- 纪念自己编写的第一个java小游戏,飞翔小鸟
- 我的java学习路之编写第一个程序
- 如何用记事本编写你的第一个Java程序
- 使用IntelliJ IDEA编写自己的第一个java程序
- hive的udf的编写
- 【JAVA】2、编写第一个Java程序
- 【JAVA】3、编写第一个Java程序
- 用 Sublime Text 3 + JDK 编写第一个java程序
- hive中UDF的编写
- 第二章 编写第一个JAVA程序
- Ubuntu14.04安装Matlab2014b记录
- 《UNIX网络编程 卷2》 笔记: Posix消息队列(1)
- 跨域2
- MyBatis学习(五)-缓存机制
- webService的简易介绍
- 用Java编写的第一个UDF
- Linux下常用软件分享(TODO)
- Dukto 傻瓜安装教程
- 【LeetCode解答三】Longest Substring Without Repeating Characters问题Java解答
- myabtis 45; 必须声明元素类型 "bind"。
- Migration guide
- HDU6170 Two strings dp 多校联赛第9场
- Linux学习(四):Linux文件系统及其shell命令
- 设置Xshell连不上CentOS虚拟机