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->

                                    wKiom1TRjUSTRduPAAHE1yL05lE088.jpg

    要选择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;

        wKioL1TRjvfwKxwxAAMsZQDbnQE910.jpg