Example usage for org.apache.hadoop.io DoubleWritable DoubleWritable

List of usage examples for org.apache.hadoop.io DoubleWritable DoubleWritable

Introduction

In this page you can find the example usage for org.apache.hadoop.io DoubleWritable DoubleWritable.

Prototype

public DoubleWritable(double value) 

Source Link

Usage

From source file:org.apache.giraph.aggregators.TestDoubleAggregators.java

License:Apache License

@Test
public void testMinAggregator() {
    DoubleMinAggregator min = new DoubleMinAggregator();
    min.aggregate(new DoubleWritable(3.0));
    min.aggregate(new DoubleWritable(2.0));
    assertEquals(2.0, min.getAggregatedValue().get(), 0d);
    min.setAggregatedValue(new DoubleWritable(3.0));
    assertEquals(3.0, min.getAggregatedValue().get(), 0d);
    DoubleWritable dw = min.createInitialValue();
    assertNotNull(dw);/*w w  w  .  jav  a  2  s  .c  o  m*/
}

From source file:org.apache.giraph.aggregators.TestDoubleAggregators.java

License:Apache License

@Test
public void testOverwriteAggregator() {
    DoubleOverwriteAggregator overwrite = new DoubleOverwriteAggregator();
    overwrite.aggregate(new DoubleWritable(1.0));
    assertEquals(1.0, overwrite.getAggregatedValue().get(), 0d);
    overwrite.aggregate(new DoubleWritable(2.0));
    assertEquals(2.0, overwrite.getAggregatedValue().get(), 0d);
    overwrite.setAggregatedValue(new DoubleWritable(3.0));
    assertEquals(3.0, overwrite.getAggregatedValue().get(), 0d);
    DoubleWritable dw = overwrite.createInitialValue();
    assertNotNull(dw);// w  ww.j  a va2  s.c  o  m
}

From source file:org.apache.giraph.aggregators.TestDoubleAggregators.java

License:Apache License

@Test
public void testProductAggregator() {
    DoubleProductAggregator product = new DoubleProductAggregator();
    product.aggregate(new DoubleWritable(6.0));
    product.aggregate(new DoubleWritable(7.0));
    assertEquals(42.0, product.getAggregatedValue().get(), 0d);
    product.setAggregatedValue(new DoubleWritable(1.0));
    assertEquals(1.0, product.getAggregatedValue().get(), 0d);
    DoubleWritable dw = product.createInitialValue();
    assertNotNull(dw);//from   w ww. ja va 2 s .  c  o m
}

From source file:org.apache.giraph.aggregators.TestDoubleAggregators.java

License:Apache License

@Test
public void testSumAggregator() {
    DoubleSumAggregator sum = new DoubleSumAggregator();
    sum.aggregate(new DoubleWritable(1.0));
    sum.aggregate(new DoubleWritable(2.0));
    assertEquals(3.0, sum.getAggregatedValue().get(), 0d);
    sum.setAggregatedValue(new DoubleWritable(4.0));
    assertEquals(4.0, sum.getAggregatedValue().get(), 0d);
    DoubleWritable dw = sum.createInitialValue();
    assertNotNull(dw);//from   ww  w  .  j a  v  a 2  s.c o m
}

From source file:org.apache.giraph.benchmark.ShortestPathsComputation.java

License:Apache License

@Override
public void compute(Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
        Iterable<DoubleWritable> messages) throws IOException {
    if (getSuperstep() == 0) {
        vertex.setValue(new DoubleWritable(Double.MAX_VALUE));
    }/* ww w.  j  ava  2 s  . c  o  m*/

    double minDist = isSource(vertex) ? 0d : Double.MAX_VALUE;
    for (DoubleWritable message : messages) {
        minDist = Math.min(minDist, message.get());
    }

    if (minDist < vertex.getValue().get()) {
        vertex.setValue(new DoubleWritable(minDist));
        for (Edge<LongWritable, DoubleWritable> edge : vertex.getEdges()) {
            double distance = minDist + edge.getValue().get();
            sendMessage(edge.getTargetVertexId(), new DoubleWritable(distance));
        }
    }

    vertex.voteToHalt();
}

From source file:org.apache.giraph.benchmark.ShortestPathsVertex.java

License:Apache License

@Override
public void compute(Iterable<DoubleWritable> messages) throws IOException {
    if (getSuperstep() == 0) {
        setValue(new DoubleWritable(Double.MAX_VALUE));
    }/*from ww  w  .  j  av a  2 s. co  m*/

    double minDist = isSource() ? 0d : Double.MAX_VALUE;
    for (DoubleWritable message : messages) {
        minDist = Math.min(minDist, message.get());
    }

    if (minDist < getValue().get()) {
        setValue(new DoubleWritable(minDist));
        for (Edge<LongWritable, DoubleWritable> edge : getEdges()) {
            double distance = minDist + edge.getValue().get();
            sendMessage(edge.getTargetVertexId(), new DoubleWritable(distance));
        }
    }

    voteToHalt();
}

From source file:org.apache.giraph.benchmark.WeightedPageRankComputation.java

License:Apache License

@Override
public void compute(Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
        Iterable<DoubleWritable> messages) throws IOException {
    if (getSuperstep() == 0) {
        // Normalize out edge weights
        double outEdgeSum = 0;
        for (Edge<LongWritable, DoubleWritable> edge : vertex.getEdges()) {
            outEdgeSum += edge.getValue().get();
        }/* ww  w. j  a v  a2 s.c om*/
        for (MutableEdge<LongWritable, DoubleWritable> edge : vertex.getMutableEdges()) {
            edge.setValue(new DoubleWritable(edge.getValue().get() / outEdgeSum));
        }
    } else {
        double messageSum = 0;
        for (DoubleWritable message : messages) {
            messageSum += message.get();
        }
        vertex.getValue().set((0.15f / getTotalNumVertices()) + 0.85f * messageSum);
    }

    if (getSuperstep() < getConf().getInt(SUPERSTEP_COUNT, 0)) {
        for (Edge<LongWritable, DoubleWritable> edge : vertex.getEdges()) {
            sendMessage(edge.getTargetVertexId(),
                    new DoubleWritable(vertex.getValue().get() * edge.getValue().get()));
        }
    } else {
        vertex.voteToHalt();
    }
}

From source file:org.apache.giraph.benchmark.WeightedPageRankVertex.java

License:Apache License

@Override
public void compute(Iterable<DoubleWritable> messages) throws IOException {
    if (getSuperstep() == 0) {
        // Normalize out edge weights
        double outEdgeSum = 0;
        for (Edge<LongWritable, DoubleWritable> edge : getEdges()) {
            outEdgeSum += edge.getValue().get();
        }/*from   w w w. j a v a  2 s .  c o  m*/
        for (MutableEdge<LongWritable, DoubleWritable> edge : getMutableEdges()) {
            edge.setValue(new DoubleWritable(edge.getValue().get() / outEdgeSum));
        }
    } else {
        double messageSum = 0;
        for (DoubleWritable message : messages) {
            messageSum += message.get();
        }
        getValue().set((0.15f / getTotalNumVertices()) + 0.85f * messageSum);
    }

    if (getSuperstep() < getConf().getInt(SUPERSTEP_COUNT, 0)) {
        for (Edge<LongWritable, DoubleWritable> edge : getEdges()) {
            sendMessage(edge.getTargetVertexId(), new DoubleWritable(getValue().get() * edge.getValue().get()));
        }
    } else {
        voteToHalt();
    }
}

From source file:org.apache.giraph.block_app.examples.pagerank.PageRankExampleBlockFactory.java

License:Apache License

@Override
@SuppressWarnings("rawtypes")
public Block createBlock(GiraphConfiguration conf) {
    Block iter = Pieces.<WritableComparable, DoubleWritable, Writable, DoubleWritable>sendMessageToNeighbors(
            "IterationPiece", SumMessageCombiner.DOUBLE,
            (vertex) -> new DoubleWritable(vertex.getValue().get() / vertex.getNumEdges()), (vertex, value) -> {
                double sum = value != null ? value.get() : 0;
                vertex.getValue().set(0.15f + 0.85f * sum);
            });/*w  w w .ja  v  a2 s. c o m*/
    return new RepeatBlock(NUM_ITERATIONS.get(conf), iter);
}

From source file:org.apache.giraph.block_app.examples.pagerank.PageRankWithConvergenceExampleBlockFactory.java

License:Apache License

@Override
@SuppressWarnings("rawtypes")
public Block createBlock(GiraphConfiguration conf) {
    ObjectTransfer<Boolean> converged = new ObjectTransfer<>();

    Block iter = SendMessageChain/*from  w w  w .  ja  va2  s.c  om*/
            .<WritableComparable, DoubleWritable, Writable, DoubleWritable>startSendToNeighbors(
                    "PageRankUpdate", SumMessageCombiner.DOUBLE,
                    (vertex) -> new DoubleWritable(vertex.getValue().get() / vertex.getNumEdges()))
            .endReduce("PageRankCheckConvergence", SumReduce.LONG, (vertex, value) -> {
                double sum = value != null ? value.get() : 0;
                double newValue = 0.15f + 0.85f * sum;
                double change = Math.abs(newValue - vertex.getValue().get());
                vertex.getValue().set(newValue);
                return (change > EPS) ? ONE : ZERO;
            }, (changingCount) -> converged.apply(changingCount.get() == 0));

    return new RepeatUntilBlock(NUM_ITERATIONS.get(conf), iter, converged);
}