ファイルから入力を読み取り、カスタム UDF に送信する豚のスクリプトがあります。カスタム UDF は、2 つのキーと値のペアを含むマップを返します。その後、各キーと値のペアを 2 つの異なる場所に保存する必要があります。ストアを使用して実行しています。私たちが直面している問題は、pig スクリプトで使用している各 STORE コマンドがカスタム UDF を呼び出していることです。
>REGISTER MyUDF.jar;
>LOADFILE = LOAD '$file' AS record:chararray;
>MAPREC = FOREACH LOADFILE GENERATE MyUDF(record);
>ERRLIST = FOREACH MAPREC {
>GENERATE $0#'errorRecord' AS ErrorRecord;
>};
>ERRLIST = FILTER ERRLIST BY ErrorRecord is not null;
>MLIST = FOREACH MAPREC {
>GENERATE $0#'mInfo' AS MRecord;
>};
>MLIST = FILTER MLIST BY MRecord is not null;
>STORE MLIST INTO 'fileOut';
>STORE ERRLIST INTO 'errorDir';
複数のSTOREがある場合でも、UDFが1回だけ呼び出される豚のスクリプトに方法はありますか....