有一些時候需要生成一個自增的id,以便能和mysql的表對應進行同步。參考了相關文檔,寫了一個python版的udf。
# coding=utf-8 from odps.udf import annotate @annotate("*->bigint") class AutoIncrement(object): count=0 def evaluate(self,*args): base =0 if len(args)==1 and isinstance(args[0],(int,long)) and args[0]>=0 : base=args[0] self.count=self.count+1 return self.count+base
這個方法接受變長的參數,參數可以用來指定auto increment開始的值。當且僅當傳入參數的個數為1,并且是大于等于0的int或者long才會生效。
轉自臨欄