@Override protected Float getValue(FloatValue value) { return value.getValue(); } }
@Override public void aggregate(FloatValue value) { agg += value.getValue(); }
@Override public FloatValue copy(FloatValue from, FloatValue reuse) { reuse.setValue(from.getValue()); return reuse; }
@Override public boolean add(FloatValue value) { int newPosition = position + 1; if (newPosition > data.length) { if (isBounded) { return false; } else { ensureCapacity(newPosition); } } data[position] = value.getValue(); position = newPosition; return true; }
@Override public LongValueWithProperHashCode translate(FloatValue value, LongValueWithProperHashCode reuse) throws Exception { if (reuse == null) { reuse = new LongValueWithProperHashCode(); } reuse.setValue(0xffffffffL & Float.floatToRawIntBits(value.getValue())); return reuse; } }
@Override public void open(Configuration parameters) throws Exception { super.open(parameters); if (minimumRatio > 0.0f) { Collection<Tuple2<FloatValue, LongValue>> var; var = getRuntimeContext().getBroadcastVariable(SUM_OF_SCORES_AND_NUMBER_OF_NEIGHBOR_PAIRS); Tuple2<FloatValue, LongValue> sumAndCount = var.iterator().next(); float averageScore = sumAndCount.f0.getValue() / sumAndCount.f1.getValue(); minimumScore = Math.max(minimumScore, averageScore * minimumRatio); } }
@Override public Tuple2<FloatValue, LongValue> map(Tuple3<T, LongValue, FloatValue> value) throws Exception { long degree = value.f1.getValue(); long neighborPairs = degree * (degree - 1) / 2; sumOfScores.setValue(value.f2.getValue() * neighborPairs); numberOfNeighborPairs.setValue(neighborPairs); return output; } }
@Override public void reduce(Iterable<Tuple3<T, T, FloatValue>> values, Collector<Result<T>> out) throws Exception { double sum = 0; Tuple3<T, T, FloatValue> edge = null; for (Tuple3<T, T, FloatValue> next : values) { edge = next; sum += next.f2.getValue(); } if (sum >= minimumScore) { output.setVertexId0(edge.f0); output.setVertexId1(edge.f1); output.setAdamicAdarScore((float) sum); out.collect(output); } } }
@Override public int hashCode() { if (hasher == null) { hasher = new MurmurHash(HASH_SEED); } return hasher.reset() .hash(getVertexId0().hashCode()) .hash(getVertexId1().hashCode()) .hash(adamicAdarScore.getValue()) .hash(); } }
return ((FloatValue) value).getValue();
@Override protected Float getValue(FloatValue value) { return value.getValue(); } }
@Override protected Float getValue(FloatValue value) { return value.getValue(); } }
@Override public FloatValue copy(FloatValue from, FloatValue reuse) { reuse.setValue(from.getValue()); return reuse; }
@Override public FloatValue copy(FloatValue from, FloatValue reuse) { reuse.setValue(from.getValue()); return reuse; }
@Override public void open(Configuration parameters) throws Exception { super.open(parameters); if (minimumRatio > 0.0f) { Collection<Tuple2<FloatValue, LongValue>> var; var = getRuntimeContext().getBroadcastVariable(SUM_OF_SCORES_AND_NUMBER_OF_NEIGHBOR_PAIRS); Tuple2<FloatValue, LongValue> sumAndCount = var.iterator().next(); float averageScore = sumAndCount.f0.getValue() / sumAndCount.f1.getValue(); minimumScore = Math.max(minimumScore, averageScore * minimumRatio); } }
@Override public void open(Configuration parameters) throws Exception { super.open(parameters); if (minimumRatio > 0.0f) { Collection<Tuple2<FloatValue, LongValue>> var; var = getRuntimeContext().getBroadcastVariable(SUM_OF_SCORES_AND_NUMBER_OF_NEIGHBOR_PAIRS); Tuple2<FloatValue, LongValue> sumAndCount = var.iterator().next(); float averageScore = sumAndCount.f0.getValue() / sumAndCount.f1.getValue(); minimumScore = Math.max(minimumScore, averageScore * minimumRatio); } }
@Override public void open(Configuration parameters) throws Exception { super.open(parameters); if (minimumRatio > 0.0f) { Collection<Tuple2<FloatValue, LongValue>> var; var = getRuntimeContext().getBroadcastVariable(SUM_OF_SCORES_AND_NUMBER_OF_NEIGHBOR_PAIRS); Tuple2<FloatValue, LongValue> sumAndCount = var.iterator().next(); float averageScore = sumAndCount.f0.getValue() / sumAndCount.f1.getValue(); minimumScore = Math.max(minimumScore, averageScore * minimumRatio); } }
@Override public Tuple2<FloatValue, LongValue> map(Tuple3<T, LongValue, FloatValue> value) throws Exception { long degree = value.f1.getValue(); long neighborPairs = degree * (degree - 1) / 2; sumOfScores.setValue(value.f2.getValue() * neighborPairs); numberOfNeighborPairs.setValue(neighborPairs); return output; } }
@Override public Tuple2<FloatValue, LongValue> map(Tuple3<T, LongValue, FloatValue> value) throws Exception { long degree = value.f1.getValue(); long neighborPairs = degree * (degree - 1) / 2; sumOfScores.setValue(value.f2.getValue() * neighborPairs); numberOfNeighborPairs.setValue(neighborPairs); return output; } }