在我的Eclipse,我有標記錯誤「之類Sum.SumIntegerFn是不可見的谷歌數據流:類型Sum.SumIntegerFn是不可見的
import org.apache.beam.sdk.transforms.Sum;
....
something = createAggregator("something", new Sum.SumIntegerFn());
在我的Eclipse,我有標記錯誤「之類Sum.SumIntegerFn是不可見的谷歌數據流:類型Sum.SumIntegerFn是不可見的
import org.apache.beam.sdk.transforms.Sum;
....
something = createAggregator("something", new Sum.SumIntegerFn());
我從進口看你」。重新使用Apache梁。您應該使用Sum.ofIntegers()
而不是new Sum.SumIntegerFn()
。
還要注意的是,在Github的頭,聚合器已被刪除。取而代之的是,一個計數器指標將提供類似的行爲。見Metrics
瞭解更多詳情。
的Sum.SumIntegerFn()
不再公開曝光,它被替換爲Sum.ofIntegers()
。如果您需要一種解決方法來使用您自己的Iterable函數而不是內置函數,請嘗試下面的代碼塊。
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;
}
}
但我發現這個從梁[文件](https://beam.apache.org/documentation/programming-guide/#transforms-usercodereqs)Sum.SumIntegerFn()結合在輸入PCollection的元素。 'PCollection pc = ...; PCollection sum = pc.apply( Combine.globally(new Sum.SumIntegerFn()));' –
bignano
文檔已過期,'Sum.SumIntegerFn()'不再暴露。 Sum.ofIntegers()'取代了它。對於那個用例,你也可以執行'Sum.integersGlobally()'。最初的問題是關於聚合器,而不是Combine。 –
現在我得到了這個「Sum.ofIntegers無法解析爲類型」 – bignano