-1
私は豚に実装しなければならない現在のETLロジックを持っています。 ETLロジックは、入力値がNULLまたは空白の場合、列の一意のシーケンス番号を作成しています。豚スクリプトでシーケンス番号を生成するETLロジックを実装する必要があります
ブタを介してこれを行う必要があります。
私は豚に実装しなければならない現在のETLロジックを持っています。 ETLロジックは、入力値がNULLまたは空白の場合、列の一意のシーケンス番号を作成しています。豚スクリプトでシーケンス番号を生成するETLロジックを実装する必要があります
ブタを介してこれを行う必要があります。
あなたはRANKを使用してシーケンス番号を生成することができますが、その値が「0」または「nullが」のみシーケンス番号を割り当てるされたいずれかの場合は、あなたの状態で、あなたがチェックしている少し異なる..です
マイポイントあなたが豚でこの..
package pig.test;
import java.io.IOException;
import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
public class SequenceNumber extends EvalFunc<Integer> {
static int cnt = 0;
public Integer exec(Tuple v) throws IOException{
int a = (Integer)v.get(0);
if(a == 0) {
cnt++ ;
return new Integer(cnt);
}
else
return new Integer(a);
}
}
のためのUDFを使用する必要があります表示:
--Replace all null with 0
Step-1 A1 = foreach A generate *, (id is null ? 0 : id) as sq;
Step-2 T1 = foreach A1 generate sq,<your_fields>,<your_fields>;
Step-3 Result = foreach T1 generate sqno(*),<your_fields>,<your_fields>;
これが役立つことを願っています!
あなたを止めているのは何ですか? –