@Override public void operate(FlowProcess flowProcess, BufferCall bufferCall) { Iterator<TupleEntry> it = bufferCall.getArgumentsIterator(); HyperLogLog merged = null; try { while (it.hasNext()) { TupleEntry tupleEntry = it.next(); byte[] serialized = (byte[]) tupleEntry.getObject(0); HyperLogLog hll = HyperLogLog.Builder.build(serialized); if (merged == null) { merged = hll; } else { merged = (HyperLogLog) merged.merge(hll); } } } catch (Exception e) { throw new RuntimeException(e); } }