@ConstantFieldsFirst({0,1}) @ConstantFieldsSecond({0,1}) public static class FindShortestPath extends CoGroupFunction implements Serializable {
@ConstantFieldsFirst(0) public class DotProductCoGroup extends CoGroupFunction implements Serializable { private static final long serialVersionUID = 1L;
@ConstantFieldsFirst(0) public static final class VertexUpdateDriver<K extends Key<K>, V extends Value, M extends Value> extends CoGroupFunction {
@ConstantFieldsFirst(1) @ConstantFieldsSecond(0) public static class ConcatPaths extends JoinFunction implements Serializable {
@ConstantFieldsFirst({0,1}) public class ComputeDistanceParameterized extends MapFunction implements Serializable { private static final long serialVersionUID = 1L;
@ConstantFieldsFirst(0) @ConstantFieldsSecond(0) public static final class MinIdAndUpdate extends CoGroupFunction implements Serializable { private static final long serialVersionUID = 1L; private final LongValue newComponentId = new LongValue(); @Override public void coGroup(Iterator<Record> candidates, Iterator<Record> current, Collector<Record> out) throws Exception { if (!current.hasNext()) { throw new Exception("Error: Id not encountered before."); } Record old = current.next(); long oldId = old.getField(1, LongValue.class).getValue(); long minimumComponentID = Long.MAX_VALUE; while (candidates.hasNext()) { long candidateComponentID = candidates.next().getField(1, LongValue.class).getValue(); if (candidateComponentID < minimumComponentID) { minimumComponentID = candidateComponentID; } } if (minimumComponentID < oldId) { newComponentId.setValue(minimumComponentID); old.setField(1, newComponentId); out.collect(old); } } }
@ConstantFieldsFirst({0,1}) public class ComputeDistance extends CrossFunction implements Serializable { private static final long serialVersionUID = 1L;
@ConstantFieldsFirst(0) @ConstantFieldsSecond(0) public static final class MinIdAndUpdate extends CoGroupFunction implements Serializable {
/** * Match PACT realizes the join between LineItem and Order table. * */ @ConstantFieldsFirst({0,1}) public static class JoinLiO extends JoinFunction implements Serializable { private static final long serialVersionUID = 1L; /** * Implements the join between LineItem and Order table on the order key. * * Output Schema: * 0:ORDERKEY * 1:SHIPPRIORITY * 2:EXTENDEDPRICE */ @Override public void join(Record order, Record lineitem, Collector<Record> out) { order.setField(2, lineitem.getField(1, DoubleValue.class)); out.collect(order); } }
/** * UDF that joins a candidate (Vertex-ID, Component-ID) pair with another (Vertex-ID, Component-ID) pair. * Returns the candidate pair, if the candidate's Component-ID is smaller. */ @ConstantFieldsFirst(0) public static final class UpdateComponentIdMatch extends JoinFunction implements Serializable { private static final long serialVersionUID = 1L; @Override public void join(Record newVertexWithComponent, Record currentVertexWithComponent, Collector<Record> out){ long candidateComponentID = newVertexWithComponent.getField(1, LongValue.class).getValue(); long currentComponentID = currentVertexWithComponent.getField(1, LongValue.class).getValue(); if (candidateComponentID < currentComponentID) { out.collect(newVertexWithComponent); } } }