Die Sum.SumIntegerFn()
wird nicht mehr öffentlich zugänglich gemacht, es wird durch Sum.ofIntegers()
ersetzt. Wenn Sie eine Problemumgehung benötigen, um Ihre eigene Iterable-Funktion anstelle der eingebauten Iterable-Funktion zu verwenden, versuchen Sie den folgenden Codeblock.
something = createAggregator("something", new SumIntegers());
public static class SumIntegers implements SerializableFunction<Iterable<Integer>, Integer> {
@Override
public Integer apply(Iterable<Integer> input) {
Integer sum = 0;
for (Integer item : input) {
sum += item;
}
return sum;
}
}
aber Ich fand diese von dem Strahl [Dokument] (https://beam.apache.org/documentation/programming-guide/#transforms-usercodereqs) Sum.SumIntegerFn() verbindet, die Elemente in dem Eingang PCollection. 'PCollection pc = ...; PCollection sum = pc.apply ( Combine.global (new Sum.SumIntegerFn())); ' –
bignano
Die Dokumentation ist veraltet und die' Sum.SumIntegerFn() 'ist nicht mehr verfügbar. 'Sum.ofIntegers()' hat es ersetzt. Für diesen Anwendungsfall können Sie auch 'Sum.integersGlobally()' ausführen. Die ursprüngliche Frage betraf Aggregatoren, nicht Kombinat. –
jetzt habe ich diese "Sum.ofIntegers kann nicht zu einem Typ aufgelöst werden" – bignano