У меня есть файл CSV, который содержит несколько столбцов (идентификаторы и числовые значения). Я хочу выполнить некоторые базовые статистические данные по числовым переменным (я новичок в Apache Beam). Мне удалось выполнить сумму по паре ключ-значение. И после этого мне было интересно, как я могу расширить следующий класс, чтобы сделать это для нескольких значений одновременно.
public static class ExtractAndSumScore
extends PTransform<PCollection<ChargesInfo>, PCollection<KV<String, Integer>>> {
@Override
public PCollection<KV<String, Integer>> expand(PCollection<ChargesInfo> gameInfo) {
return gameInfo
.apply(
MapElements.into(
TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.integers()))
.via((ChargesInfo cInfo) -> KV.of(cInfo.getProviderID(), cInfo.getTotalDischarges())))
.apply(Sum.integersPerKey());
}
}
Я ожидаю напечатать файл, содержащий сумму по ключу, по нескольким столбцам.
id0 total amount: 300 total score: 10
id1 total amount: 100 total score: 20
id2 ..
id3 ..
...