1.导入Eclipse中相应的jar包:
hadoop-auth.jar
hadoop-common.jar
hive-exec-0.13.0.2.1.3.0-563.jar
2.编写代码
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.hive.ql.udf.UDFType;
import org.apache.hadoop.io.LongWritable;
/*
* UDF RowSequence
*/
@Description(name = "auto_sequence",
value = "_FUNC_() - Returns a generated row sequence number starting from1")
@UDFType(deterministic= false)
publiccla***owSequence extends UDF {
private LongWritable result = new LongWritable();
public RowSequence(){
result.set(0);
}
public LongWritableevaluate(){
result.set(result.get() + 1);
returnresult;
}
}
3.将jar包放到hive中执行
导出Eclipse,点击class,然后右键点击export->
3.将jar包放到hive中执行
导出Eclipse,点击class,然后右键点击export->
要选择Runnable JAR file把项目的jar一块导出。
将autoSequence.jar放到/usr/lib/hive/lib
执行下面代码:
hive add jar /usr/lib/hive/lib/autoSequence.jar; create temporary function auto_sequence as 'com.redhadoop.autosequence.RowSequence'; select auto_sequence(),uname from tb_user;
转载于:https://blog.51cto.com/xulongping/1611360