时间:2021-07-01 10:21:17 帮助过:32人阅读
Hive自身查询语言HQL能完成大部分的功能,但遇到特殊需求时,需要自己写UDF实现。以下是一个完整的案例。 1、eclipse中编写UDF ①项目中加入hive的lib下的所有jar包和Hadoop中share下hadoop-common-2.5.1.jar(Hadoop目前最新版本2.5.1)。 ②UDF类要继承org
Hive自身查询语言HQL能完成大部分的功能,但遇到特殊需求时,需要自己写UDF实现。以下是一个完整的案例。
1、eclipse中编写UDF
①项目中加入hive的lib下的所有jar包和Hadoop中share下hadoop-common-2.5.1.jar(Hadoop目前最新版本2.5.1)。
package com.zx.hive.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
public class UdfTestLength extends UDF{ public Integer evaluate(String s) { if(s==null) { return null; }else{ return s.length(); } } }将上面的类打成jar的形式,我使用eclipse直接导出为test-udf.jar包,然后放在/root目录中。
2、自定义函数调用过程:
①添加jar包(在hive命令行里面执行)hive> create table result row format delimited fields terminated by '\t' as select id, testlength(nation) from student;