2016-11-15 10 views
4

私はreference manualを見ていますが、ビット単位の操作/機能に関するドキュメントは見つかりません。Apache Pigのビット演算

Pigスクリプトで、ビット単位のAND演算(Hiveの "& B"に相当)を使用する方法はありますか?

+0

直接サポートがない場合は、DEFINEを使用してperlやbashなどの外部スクリプトを呼び出すことができます。bitwise_or、bitwise_andなどの簡単なスクリプトを作成します –

答えて

0

これにカスタムUDFを提供できます。例えば。あなたがBinaryAND UDFのため

REGISTER myudfs.jar; 

そして例を行うだろう豚スクリプトでhttps://pig.apache.org/docs/r0.7.0/udf.html

を参照してください。

package myudfs; 
import java.io.IOException; 
import org.apache.pig.EvalFunc; 
import org.apache.pig.data.Tuple; 
import org.apache.pig.impl.util.WrappedIOException; 

public class BitwiseAND extends EvalFunc (Integer) 
{ 
    public String exec(Tuple input) throws IOException { 
     // check input tuple: 
     if (input == null || input.size() < 2) 
      return null; 
     try{ 
      return (Integer)input.get(0) & (Integer)input.get(1); 
     }catch(Exception e){ 
      throw WrappedIOException.wrap("Caught exception processing input row ", e); 
     } 
    } 
} 

注:これはテストされていません、それはただの豚UDFのページからコピーされています。