【发布时间】:2018-03-12 07:03:05
【问题描述】:
我有一个PCollection<V>,我想从本质上评估一个函数f(List<V>)。我可以制作一个CombineFn,看起来像:
class GlobalCombineFn extends Combine.CombineFn<Write, List<Write>, Void> {
@Override
public List<Write> createAccumulator() {
return new ArrayList<>();
}
@Override
public List<Write> addInput(List<Write> accumulator, Write input) {
accumulator.add(input);
return accumulator;
}
@Override
public List<Write> mergeAccumulators(Iterable<List<Write>> accumulators) {
List<Write> result = createAccumulator();
accumulators.forEach(result::addAll);
return result;
}
@Override
public Void extractOutput(List<Write> accumulator) {
f(accumulator);
return null;
}
}
但是,这有点愚蠢,而且有很多样板。有没有内置的方法可以做到这一点?
我也尝试过使用View.asIterable()/View.asList(),但是没有任何方法可以对PCollectionView进行操作。
【问题讨论】:
标签: apache-beam