2020-06-10 12:11:16 +02:00
|
|
|
|
2020-06-11 11:25:18 +02:00
|
|
|
package eu.dnetlib.dhp.broker.oa.util.aggregators.simple;
|
2020-06-08 16:26:16 +02:00
|
|
|
|
|
|
|
import org.apache.spark.sql.Encoder;
|
|
|
|
import org.apache.spark.sql.Encoders;
|
|
|
|
import org.apache.spark.sql.expressions.Aggregator;
|
|
|
|
|
2020-06-22 08:51:31 +02:00
|
|
|
import eu.dnetlib.broker.objects.OaBrokerMainEntity;
|
2020-06-08 16:26:16 +02:00
|
|
|
import eu.dnetlib.dhp.schema.oaf.Relation;
|
|
|
|
import scala.Tuple2;
|
|
|
|
|
2020-06-22 08:51:31 +02:00
|
|
|
public class ResultAggregator extends Aggregator<Tuple2<OaBrokerMainEntity, Relation>, ResultGroup, ResultGroup> {
|
2020-06-08 16:26:16 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
private static final long serialVersionUID = -1492327874705585538L;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ResultGroup zero() {
|
|
|
|
return new ResultGroup();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2020-06-22 08:51:31 +02:00
|
|
|
public ResultGroup reduce(final ResultGroup group, final Tuple2<OaBrokerMainEntity, Relation> t) {
|
2020-06-19 13:53:56 +02:00
|
|
|
group.getData().add(t._1);
|
|
|
|
return group;
|
2020-06-08 16:26:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ResultGroup merge(final ResultGroup g1, final ResultGroup g2) {
|
2020-06-19 13:53:56 +02:00
|
|
|
g1.getData().addAll(g2.getData());
|
|
|
|
return g1;
|
2020-06-08 16:26:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ResultGroup finish(final ResultGroup group) {
|
|
|
|
return group;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Encoder<ResultGroup> bufferEncoder() {
|
2020-06-18 14:09:58 +02:00
|
|
|
return Encoders.bean(ResultGroup.class);
|
2020-06-08 16:26:16 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Encoder<ResultGroup> outputEncoder() {
|
2020-06-18 14:09:58 +02:00
|
|
|
return Encoders.bean(ResultGroup.class);
|
2020-06-08 16:26:16 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|