<CombineInputT, AccumT, CombineOutputT> Inner<T> aggregateFields(
FieldAccessDescriptor fieldsToAggregate,
CombineFn<CombineInputT, AccumT, CombineOutputT> fn,
Field outputField) {
List<FieldAggregation> fieldAggregations = getFieldAggregations();
TupleTag<Object> combineTag = new TupleTag<>(Integer.toString(fieldAggregations.size()));
FieldAggregation fieldAggregation =
new FieldAggregation<>(fieldsToAggregate, outputField, fn, combineTag);
fieldAggregations.add(fieldAggregation);
return toBuilder()
.setOutputSchema(getOutputSchema(fieldAggregations))
.setFieldAggregations(fieldAggregations)
.build();
}