4
私はreference manualを見ていますが、ビット単位の操作/機能に関するドキュメントは見つかりません。Apache Pigのビット演算
Pigスクリプトで、ビット単位のAND演算(Hiveの "& B"に相当)を使用する方法はありますか?
私はreference manualを見ていますが、ビット単位の操作/機能に関するドキュメントは見つかりません。Apache Pigのビット演算
Pigスクリプトで、ビット単位のAND演算(Hiveの "& B"に相当)を使用する方法はありますか?
これにカスタム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のページからコピーされています。
直接サポートがない場合は、DEFINEを使用してperlやbashなどの外部スクリプトを呼び出すことができます。bitwise_or、bitwise_andなどの簡単なスクリプトを作成します –