hive UDF自動增長列函數

1.導入Eclipse編碼jar包

    hadoop-auth-2.4.0.2.1.3.0-563.jar

    hadoop-common-2.4.0.2.1.3.0-563.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 from 1")

@UDFType(deterministic = false)

public class RowSequence extends UDF {

   private LongWritable result = new LongWritable();

  

   public RowSequence(){

      result.set(0);

   }

   public LongWritable evaluate(){

      result.set(result.get() + 1);

      return result;

   }

}

3.將jar包導出上傳到hive上運行

    (1)從Eclipse導出jarbao

            spacer.gif

    (2)將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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章