hive udf udaf 一例
来源:互联网 发布:淘宝企业店铺有假货吗 编辑:程序博客网 时间:2024/05/16 08:38
udf
/**
* 分组后取前n个值
*/
package test;
import org.apache.hadoop.hive.ql.exec.UDF;
public final class Rank extends UDF{
private int counter;
private String last_key;
public int evaluate(String key){
if ( !key.equalsIgnoreCase(this.last_key) ) {
this.counter = 0;
this.last_key = key;
}
return this.counter++;
}
}
hive>add jar Rank.jar;
hive>create temporary function rank as 'com.example.hive.udf.Rank';
hive>select clsno,rank(clsno),id,score from (select clsno,id,score from byl_topn_test distribute by clsno sort by clsno,score desc)a;
得到结果:
取各科成绩中rank值小于2的记录即可。
udaf
实现avg()
package test;
import org.apache.hadoop.hive.ql.exec.UDAF;
import org.apache.hadoop.hive.ql.exec.UDAFEvaluator;
public class Avg extends UDAF{
public static class AvgStruct
{
public double num=0;
public int count=0;
}
public static class AvgHandle implements UDAFEvaluator
{
private AvgStruct avgStruct=new AvgStruct();
@Override
public void init() {
// super();
}
public boolean iterate(double s)
{
if(s!=0)
{
avgStruct.num+=s;
avgStruct.count++;
}
return true;
}
public AvgStruct terminatePartial() {
return avgStruct.count==0?null:avgStruct;
}
public boolean merge(AvgStruct o) {
if(o!=null)
{
avgStruct.num+=o.num;
avgStruct.count+=o.count;
}
return true;
}
public double terminate() {
return avgStruct.count==0?null:(double)(avgStruct.num/avgStruct.count);
}
}
}
- hive udf udaf 一例
- Hive UDF与UDAF
- HIVE UDF/UDAF/UDTF
- hive UDF UDAF
- hive udf 与udaf
- hive udf \udaf\udtf
- hive udf和udaf
- Hive Udf 与Udaf
- hive UDF UDAF
- hive UDF UDAF
- hive udf&udaf开发
- hive udf & udaf
- hive 自定义UDF UDAF UDTF
- hive udf和UDAF应用
- hive 的UDF和UDAF
- hive 自定义函数UDF,UDAF
- hive udf,udaf,udtf详解
- Hive自定义函数(UDF、UDAF)
- 男人一生必须做好的10件事
- Android布局文件经验
- linux共享内存介绍和使用举例
- Spring Security3实践总结
- Java中的get()和set()方法
- hive udf udaf 一例
- java的Arrays类的应用
- Slave_SQL_Running: No mysql同步故障解决方法
- JSP的out对象
- 把XML转换成数组最简单方法
- struts2验证框架
- [leetcode] Reverse Words in a String [1]
- Linux虚拟主机设置301跳转的方法
- 冠心病支架手术后的预期寿命 冠心病人做支架手术后还能活多久