List of usage examples for org.apache.hadoop.io DoubleWritable DoubleWritable
public DoubleWritable(double value)
From source file:org.apache.giraph.examples.GlobalClusteringCoefficientVertex.java
License:Apache License
@Override public void compute(Iterator<LongArrayWritable> msgIterator) { DoubleSumAggregator trianglesum = (DoubleSumAggregator) getAggregator("trianglesum"); DoubleSumAggregator triples = (DoubleSumAggregator) getAggregator("triples"); if (getSuperstep() == 0) { // Each vertex this is connected to List<LongWritable> verticesl = new ArrayList<LongWritable>(); // This is so we know which vertex the messages came from verticesl.add(getVertexId());/*from w ww.j a v a2 s. com*/ // Find all connected vertices with ID less than current vertex for (LongWritable targetVertexId : this) { if (targetVertexId.get() < getVertexId().get()) { verticesl.add(targetVertexId); } } // Need to send list to other vertices, must convert to arraywritable LongWritable[] verticesa = verticesl.toArray(new LongWritable[0]); LongArrayWritable vertices = new LongArrayWritable(verticesa); // Sends list of smaller ID vertices to bigger ID vertices for (LongWritable targetVertexId : this) { if (targetVertexId.get() > getVertexId().get()) { sendMsg(targetVertexId, vertices); } } } else if (getSuperstep() == 1) { while (msgIterator.hasNext()) { LongArrayWritable law = msgIterator.next(); Writable[] vertices = law.get(); LongWritable source = (LongWritable) vertices[0]; for (int i = 1; i < vertices.length; i++) { if (hasEdge((LongWritable) vertices[i])) { double num = getVertexValue().get(); setVertexValue(new DoubleWritable(1.0 + num)); LongWritable[] one = new LongWritable[] { new LongWritable(1) }; LongArrayWritable inc = new LongArrayWritable(one); sendMsg(source, inc); sendMsg(((LongWritable) vertices[i]), inc); triangles.add(source.toString()); triangles.add(vertices[i].toString()); } } } } else if (getSuperstep() == 2) { while (msgIterator.hasNext()) { LongArrayWritable law = msgIterator.next(); Writable[] msg = law.get(); LongWritable value = (LongWritable) msg[0]; double num = getVertexValue().get(); setVertexValue(new DoubleWritable(num + value.get())); } trianglesum.aggregate(getVertexValue()); double sum = 0.0; for (LongWritable source : this) { for (LongWritable target : this) { if (source.get() > target.get()) { sum++; } } } triples.aggregate(new DoubleWritable(sum)); } else { setVertexValue(new DoubleWritable( trianglesum.getAggregatedValue().get() / triples.getAggregatedValue().get())); voteToHalt(); } }
From source file:org.apache.giraph.examples.InDegreeCentralityVertex.java
License:Apache License
@Override public void compute(Iterator<LongWritable> msgIterator) { if (getSuperstep() == 0) { for (LongWritable targetVertexId : this) { sendMsg(targetVertexId, new LongWritable(1)); }/* ww w.jav a2s . c o m*/ } else { double sum = 0; while (msgIterator.hasNext()) { sum++; msgIterator.next(); } setVertexValue(new DoubleWritable(sum)); voteToHalt(); } }
From source file:org.apache.giraph.examples.LocalClusteringCoefficientVertex.java
License:Apache License
@Override public void compute(Iterator<LongArrayWritable> msgIterator) { if (getSuperstep() == 0) { // Each vertex this is connected to List<LongWritable> verticesl = new ArrayList<LongWritable>(); // This is so we know which vertex the messages came from verticesl.add(getVertexId());/* w w w .java2 s . c o m*/ // Find all connected vertices with ID less than current vertex for (LongWritable targetVertexId : this) { if (targetVertexId.get() < getVertexId().get()) { verticesl.add(targetVertexId); } } // Need to send list to other vertices, must convert to arraywritable LongWritable[] verticesa = verticesl.toArray(new LongWritable[0]); LongArrayWritable vertices = new LongArrayWritable(verticesa); // Sends list of smaller ID vertices to bigger ID vertices for (LongWritable targetVertexId : this) { if (targetVertexId.get() > getVertexId().get()) { sendMsg(targetVertexId, vertices); } } } else if (getSuperstep() == 1) { while (msgIterator.hasNext()) { LongArrayWritable law = msgIterator.next(); Writable[] vertices = law.get(); LongWritable source = (LongWritable) vertices[0]; for (int i = 1; i < vertices.length; i++) { if (hasEdge((LongWritable) vertices[i])) { double num = getVertexValue().get(); setVertexValue(new DoubleWritable(1.0 + num)); LongWritable[] one = new LongWritable[] { new LongWritable(1) }; LongArrayWritable inc = new LongArrayWritable(one); sendMsg(source, inc); sendMsg(((LongWritable) vertices[i]), inc); triangles.add(source.toString()); triangles.add(vertices[i].toString()); } } } } else { while (msgIterator.hasNext()) { LongArrayWritable law = msgIterator.next(); Writable[] msg = law.get(); LongWritable value = (LongWritable) msg[0]; double num = getVertexValue().get(); setVertexValue(new DoubleWritable(num + value.get())); } int sum = 0; for (LongWritable source : this) { for (LongWritable target : this) { if (source.get() > target.get()) { sum++; } } } if (sum > 0) { setVertexValue(new DoubleWritable(getVertexValue().get() / sum)); } voteToHalt(); } }
From source file:org.apache.giraph.examples.MaxAggregator.java
License:Apache License
public DoubleWritable getAggregatedValue() { return new DoubleWritable(max); }
From source file:org.apache.giraph.examples.MinAggregator.java
License:Apache License
public DoubleWritable getAggregatedValue() { return new DoubleWritable(min); }
From source file:org.apache.giraph.examples.NetworkLocalClusteringCoefficientVertex.java
License:Apache License
@Override public void compute(Iterator<LongArrayWritable> msgIterator) { DoubleSumAggregator sumAggreg = (DoubleSumAggregator) getAggregator("sum"); if (getSuperstep() == 0) { // Each vertex this is connected to List<LongWritable> verticesl = new ArrayList<LongWritable>(); // This is so we know which vertex the messages came from verticesl.add(getVertexId());/*from w w w . j ava 2s.co m*/ // Find all connected vertices with ID less than current vertex for (LongWritable targetVertexId : this) { if (targetVertexId.get() < getVertexId().get()) { verticesl.add(targetVertexId); } } // Need to send list to other vertices, must convert to arraywritable LongWritable[] verticesa = verticesl.toArray(new LongWritable[0]); LongArrayWritable vertices = new LongArrayWritable(verticesa); // Sends list of smaller ID vertices to bigger ID vertices for (LongWritable targetVertexId : this) { if (targetVertexId.get() > getVertexId().get()) { sendMsg(targetVertexId, vertices); } } } else if (getSuperstep() == 1) { while (msgIterator.hasNext()) { LongArrayWritable law = msgIterator.next(); Writable[] vertices = law.get(); LongWritable source = (LongWritable) vertices[0]; for (int i = 1; i < vertices.length; i++) { if (hasEdge((LongWritable) vertices[i])) { double num = getVertexValue().get(); setVertexValue(new DoubleWritable(1.0 + num)); LongWritable[] one = new LongWritable[] { new LongWritable(1) }; LongArrayWritable inc = new LongArrayWritable(one); sendMsg(source, inc); sendMsg(((LongWritable) vertices[i]), inc); triangles.add(source.toString()); triangles.add(vertices[i].toString()); } } } } else if (getSuperstep() == 2) { while (msgIterator.hasNext()) { LongArrayWritable law = msgIterator.next(); Writable[] msg = law.get(); LongWritable value = (LongWritable) msg[0]; double num = getVertexValue().get(); setVertexValue(new DoubleWritable(num + value.get())); } int sum = 0; for (LongWritable source : this) { for (LongWritable target : this) { if (source.get() > target.get()) { sum++; } } } if (sum > 0) { setVertexValue(new DoubleWritable(getVertexValue().get() / sum)); } sumAggreg.aggregate(getVertexValue()); } else { setVertexValue(new DoubleWritable(sumAggreg.getAggregatedValue().get() / getNumVertices())); voteToHalt(); } }
From source file:org.apache.giraph.examples.newSPath.java
License:Apache License
@Override public void compute(Iterator<DoubleWritable> msgIterator) { if (getSuperstep() == 0) { setVertexValue(new DoubleWritable(Double.MAX_VALUE)); }//from www . j a va 2s. c o m double minDist = isSource() ? 0d : Double.MAX_VALUE; while (msgIterator.hasNext()) { minDist = Math.min(minDist, msgIterator.next().get()); } if (LOG.isDebugEnabled()) { LOG.debug("Vertex " + getVertexId() + " got minDist = " + minDist + " vertex value = " + getVertexValue()); } if (minDist < getVertexValue().get()) { setVertexValue(new DoubleWritable(minDist)); for (LongWritable targetVertexId : this) { FloatWritable edgeValue = getEdgeValue(targetVertexId); if (LOG.isDebugEnabled()) { LOG.debug("Vertex " + getVertexId() + " sent to " + targetVertexId + " = " + (minDist + edgeValue.get())); } if (!isdestination()) sendMsg(targetVertexId, new DoubleWritable(minDist + edgeValue.get())); } } voteToHalt(); }
From source file:org.apache.giraph.examples.OutDegreeCentralityVertex.java
License:Apache License
@Override public void compute(Iterator<LongWritable> msgIterator) { if (getSuperstep() == 0) { setVertexValue(new DoubleWritable(getNumOutEdges())); voteToHalt();//w w w. j av a 2s .c o m } }
From source file:org.apache.giraph.examples.pagerank.java
License:Apache License
/** * Is this vertex the source id?//www.j a v a2 s . com * * @param vertex Vertex * @return True if the source id */ @Override public void compute(Vertex<LongWritable, DoubleWritable, FloatWritable> vertex, Iterable<DoubleWritable> messages) throws IOException { if (getSuperstep() == 0) { vertex.setValue(new DoubleWritable(1f / getTotalNumVertices())); } if (getSuperstep() >= 1) { double sum = 0; for (DoubleWritable message : messages) { sum += message.get(); } DoubleWritable vertexValue = new DoubleWritable((0.15f / getTotalNumVertices()) + 0.85f * sum); vertex.setValue(vertexValue); } if (getSuperstep() < 3) { long edges = vertex.getNumEdges(); if (edges == 0) sendMessageToAllEdges(vertex, new DoubleWritable(vertex.getValue().get() / getTotalNumVertices())); else { for (Edge<LongWritable, FloatWritable> edge : vertex.getEdges()) { sendMessage(edge.getTargetVertexId(), new DoubleWritable(vertex.getValue().get() / edges)); } } } else { vertex.voteToHalt(); } }
From source file:org.apache.giraph.examples.pagerank.java
License:Apache License
@Override public void compute(Vertex<LongWritable, DoubleWritable, FloatWritable> vertex, Iterable<DoubleWritable> messages) throws IOException { if (getSuperstep() == 0) { vertex.setValue(1f / getTotalNumVertices()); }/* w ww . j av a 2 s. co m*/ if (getSuperstep() >= 1) { double sum = 0; for (DoubleWritable message : messages) { sum += message.get(); } DoubleWritable vertexValue = new DoubleWritable((0.15f / getTotalNumVertices()) + 0.85f * sum); vertex.setValue(1f); aggregate(MAX_AGG, vertexValue); aggregate(MIN_AGG, vertexValue); aggregate(SUM_AGG, new LongWritable(1)); } if (getSuperstep() < 10) { long edges = vertex.getNumEdges(); if (edges == 0) sendMessageToAllEdges(vertex, new DoubleWritable(vertex.getValue().get() / getTotalNumVertices())); else { for (Edge<LongWritable, FloatWritable> edge : vertex.getEdges()) { sendMessage(edge.getTargetVertexId(), new DoubleWritable(vertex.getValue().get() / edges)); } } } else { vertex.voteToHalt(); } }