package eu.dnetlib.dhp.dedup; import eu.dnetlib.pace.util.Reporter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.spark.util.LongAccumulator; import scala.Serializable; import scala.Tuple2; import java.util.ArrayList; import java.util.List; import java.util.Map; public class SparkReporter implements Serializable, Reporter { final List> relations = new ArrayList<>(); private static final Log log = LogFactory.getLog(SparkReporter.class); Map accumulators; public SparkReporter(Map accumulators){ this.accumulators = accumulators; } public void incrementCounter(String counterGroup, String counterName, long delta, Map accumulators) { final String accumulatorName = String.format("%s::%s", counterGroup, counterName); if (accumulators.containsKey(accumulatorName)){ accumulators.get(accumulatorName).add(delta); } } @Override public void incrementCounter(String counterGroup, String counterName, long delta) { incrementCounter(counterGroup, counterName, delta, accumulators); } @Override public void emit(String type, String from, String to) { relations.add(new Tuple2<>(from, to)); } public List> getRelations() { return relations; } }