UDFのAGR_COMBINE集約フェーズでは、集約の対象となるグループごとに、2つの中間集約記憶域を結合して1つの記憶域にする必要があります。UDFが結合する記憶域は、特定のグループに対する異なるAMPからの結果です。
最終結果は、集約UDFの処理対象となるグループごとに1つずつ、集約記憶域を作成することです。
標準偏差の例では、メソッドは2番目の中間集約記憶域にあるデータに対しては別のagr_storageインスタンスを使用できます。
agr_storage s2 = (agr_storage)context[0].getObject(2);
集約記憶域を組み合わせする文は、次のとおりです。
s1.count += s2.count; s1.x_sq += s2.x_sq; s1.x_sum += s2.x_sum;
また、メソッドが中間集約記憶域にあるデータの格納にバイト アレイを使用する場合は、コードは次のようになります。
ByteBuffer s2 = ByteBuffer.wrap(context[0].getBytes(2)); count += s2.getDouble(); x_sq += s2.getDouble(); x_sum += s2.getDouble();
AGR_COMBINE集約フェーズは、ウィンドウ集約UDFには適用しません。