我编写了一个实现Accumulator
接口的UDF。但是,要使我的 UDF 正常工作,需要对传入关系进行排序。我正在使用辅助排序来管理它:
out = FOREACH (GROUP test BY key) {
sorted = ORDER test BY sub_key;
GENERATE MyUDF(sorted);
}
根据Accumulator
文档,我的 UDF 期待一系列增量包。我的 UDF 接收元组的总顺序是否保持不变?即每个增量袋是否在内部订购,我看到的增量袋的顺序是否订购?
当我测试它时,一切似乎都是有序的,但我想确定,因为 Pig 文档将袋子描述为"无序"。
由于您使用 ORDER 运算符对袋内的元组进行排序,因此您的 UDF 肯定会收到排序的"排序"袋内的元组。