package com.packtpub.storm.trident.operator; import storm.trident.operation.BaseFilter; import storm.trident.tuple.TridentTuple; import java.util.Collections; import java.util.HashSet; import java.util.Set; public class Distinct extends BaseFilter { private static final long serialVersionUID = 1L; private Set<String> distincter = Collections.synchronizedSet(new HashSet<String>()); @Override public boolean isKeep(TridentTuple tuple) { String id = this.getId(tuple); return distincter.add(id); } public String getId(TridentTuple t) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < t.size(); i++) { sb.append(t.getString(i)); } return sb.toString(); } }