Function2<List<String>, Optional<Long>, Optional<Long>> hllCountFunction = new Function2<List<String>, Optional<Long>, Optional<Long>>() { @Override public Optional<Long> call(List<String> values, Optional<Long> state) throws Exception { values.stream().forEach(value -> hll.offer(value)); long newState = state.isPresent() ? hll.cardinality() : 0; return Optional.of(newState); }};