Java を使用してアキュムレータ UDF を作成しました。ソートされていないデータに対して UDF を実行すると、Pig (0.13.0) はaccumulate
必要に応じてメソッドを呼び出します。
output = FOREACH (GROUP input BY f) {
GENERATE MyUDF(input);
}
レデューサーが累積モードで実行されていることをログが宣言しているため、機能していることがわかります。
ただし、2 番目の並べ替えを適用すると、Pig がexec
メソッドを呼び出します。
output = FOREACH (GROUP input BY f) {
sorted = ORDER input BY f2;
GENERATE MyUDF(sorted);
}
ここでの私の懸念は、exec
メソッドがバッグ全体を同時にメモリに取り込むことです。入力が大きすぎてこれが機能しません。Accumulator
それが私がインターフェースを実装した理由です。
accumulate
2番目の例でメソッドが適切に使用されていない理由を知っている人はいますか? トラブルシューティング方法に関するアイデアはありますか?