hive-udaf开发实例1
2017-06-03 22:49
441 查看
1,pom配置:
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.1.0-cdh5.8.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0-cdh5.8.3</version>
</dependency>
2,java代码:
package com.ibeifeng.udaf;
import org.apache.hadoop.hive.ql.exec.UDAF;
import org.apache.hadoop.hive.ql.exec.UDAFEvaluator;
public class Wm_concat extends UDAF {
public static class myUDAFEval implements UDAFEvaluator{
private PartialResult partial = new PartialResult();
public static class PartialResult{
String result = "" ;
String delimiter = null;
}
@Override
public void init() {
// TODO Auto-generated method stub
partial.result = "";
}
public boolean iterate(String value, String deli){
if (value == null || "null".equalsIgnoreCase(value)) {
return true;
}
if (partial.delimiter == null) {
partial.delimiter = deli;
}
if (partial.result.length() > 0) {
partial.result = partial.result.concat(partial.delimiter);
}
partial.result = partial.result.concat(value);
return true;
}
public PartialResult terminatePartial() {
return partial;
}
public boolean merge(PartialResult other){
if (other == null) {
return true;
}
if (partial.delimiter == null) {
partial.delimiter = other.delimiter ;
partial.result = other.result ;
}else {
if(partial.result.length() > 0){
partial.result = partial.result.concat(partial.delimiter);
}
partial.result = partial.result.concat(other.result);
}
return true ;
}
public String terminate() {
if (partial == null || partial.result.length() == 0) {
return null;
}
return partial.result ;
}
}
}
3,导出jar包
4,hive中导入jar包
addjar /opt/beifeng/jars/hive_UDF.jar;
createtemporary function Wm_concat as 'com.ibeifeng.udf.GetCmsID ';
5,hive sql使用udf
select getcmsid(url) from info_tab group by id;
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.1.0-cdh5.8.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0-cdh5.8.3</version>
</dependency>
2,java代码:
package com.ibeifeng.udaf;
import org.apache.hadoop.hive.ql.exec.UDAF;
import org.apache.hadoop.hive.ql.exec.UDAFEvaluator;
public class Wm_concat extends UDAF {
public static class myUDAFEval implements UDAFEvaluator{
private PartialResult partial = new PartialResult();
public static class PartialResult{
String result = "" ;
String delimiter = null;
}
@Override
public void init() {
// TODO Auto-generated method stub
partial.result = "";
}
public boolean iterate(String value, String deli){
if (value == null || "null".equalsIgnoreCase(value)) {
return true;
}
if (partial.delimiter == null) {
partial.delimiter = deli;
}
if (partial.result.length() > 0) {
partial.result = partial.result.concat(partial.delimiter);
}
partial.result = partial.result.concat(value);
return true;
}
public PartialResult terminatePartial() {
return partial;
}
public boolean merge(PartialResult other){
if (other == null) {
return true;
}
if (partial.delimiter == null) {
partial.delimiter = other.delimiter ;
partial.result = other.result ;
}else {
if(partial.result.length() > 0){
partial.result = partial.result.concat(partial.delimiter);
}
partial.result = partial.result.concat(other.result);
}
return true ;
}
public String terminate() {
if (partial == null || partial.result.length() == 0) {
return null;
}
return partial.result ;
}
}
}
3,导出jar包
4,hive中导入jar包
addjar /opt/beifeng/jars/hive_UDF.jar;
createtemporary function Wm_concat as 'com.ibeifeng.udf.GetCmsID ';
5,hive sql使用udf
select getcmsid(url) from info_tab group by id;
相关文章推荐
- Hive 简单UDAF开发(extends UDAF)
- hive UDAF开发入门和运行过程详解(转)
- Hive UDAF 开发
- hive udaf开发入门和运行过程详解
- hive-udf开发实例1
- hive UDF开发实例
- Hive-UDAF开发指南
- hive udaf开发入门和运行过程详解
- hive udf&udaf开发
- Hive-UDAF开发指南
- Hive 简单UDAF开发(extends UDAF)
- 【hadoop hive】hive udaf开发入门和运行过程详解
- Hive UDF开发实例学习
- [置顶] linux中用eclipse开发Hadoop mapreduce与Hive UDF实例详解及其配置说明
- 精彩实例讲解:用EJB开发在线课堂
- struts开发实践—读写xml实例
- 用JBuilder9 开发Struts实例
- 图解利用Eclipse3+Lomboz3+Tomcat开发JSP -- 4.一个Servlet实例
- EJB开发实例CoursesOnline 1st Edition
- struts开发实践-柱形图、饼状图实例