org.apache.giraph.graph.Vertex.getEdges()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(8.6k)|赞(0)|评价(0)|浏览(107)

本文整理了Java中org.apache.giraph.graph.Vertex.getEdges()方法的一些代码示例,展示了Vertex.getEdges()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Vertex.getEdges()方法的具体详情如下:
包路径:org.apache.giraph.graph.Vertex
类名称:Vertex
方法名:getEdges

Vertex.getEdges介绍

[英]Get a read-only view of the out-edges of this vertex. Note: edge objects returned by this iterable may be invalidated as soon as the next element is requested. Thus, keeping a reference to an edge almost always leads to undesired behavior. Accessing the edges with other methods (e.g., addEdge()) during iteration leads to undefined behavior.
[中]获取此顶点外边缘的只读视图。注意:此iterable返回的边缘对象可能会在请求下一个元素时立即失效。因此,保持对边的引用几乎总是会导致不希望的行为。在迭代过程中,使用其他方法(例如addEdge())访问边会导致未定义的行为。

代码示例

代码示例来源:origin: apache/giraph

  1. @Override
  2. public Iterable<Edge<I, E>> get(Vertex<I, V, E> vertex) {
  3. return vertex.getEdges();
  4. }
  5. };

代码示例来源:origin: org.apache.giraph/giraph-core

  1. /**
  2. * Constructor.
  3. *
  4. * @param vertex The source vertex of the out edges
  5. */
  6. public TargetVertexIdIterator(Vertex<I, ?, ?> vertex) {
  7. edgesIterator =
  8. ((Vertex<I, Writable, Writable>) vertex).getEdges().iterator();
  9. }

代码示例来源:origin: grafos-ml/okapi

  1. private void debug(Vertex<LongWritable, IntWritable, MBMEdgeValue> vertex) {
  2. LOG.debug(vertex);
  3. for (Edge<LongWritable, MBMEdgeValue> e : vertex.getEdges())
  4. LOG.debug(String.format("Edge(%d, %s)", e.getTargetVertexId().get(), e.getValue().toString()));
  5. }
  6. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public Text convertVertexToLine(Vertex<LongWritable, IntWritable, MBMEdgeValue> vertex) throws IOException {
  3. StringBuffer sb = new StringBuffer(vertex.getId().toString());
  4. sb.append(delimiter);
  5. sb.append(vertex.getValue());
  6. for (Edge<LongWritable, MBMEdgeValue> edge : vertex.getEdges()) {
  7. sb.append(delimiter).append(edge.getTargetVertexId());
  8. sb.append(delimiter).append(edge.getValue().getWeight());
  9. // skip the state, which is always INCLUDED
  10. }
  11. return new Text(sb.toString());
  12. }
  13. }

代码示例来源:origin: grafos-ml/okapi

  1. /**
  2. * This method computes the degree of a vertex as the sum of its edge weights.
  3. * @param v
  4. * @return
  5. */
  6. public static double computeDegree(
  7. Vertex<LongWritable,VertexValue,DoubleWritable> v) {
  8. double degree = 0.0;
  9. for (Edge<LongWritable, DoubleWritable> edge : v.getEdges()) {
  10. degree += edge.getValue().get();
  11. }
  12. return degree;
  13. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. @Override
  2. public void writeVertex(
  3. Vertex<WritableComparable, Writable, Writable> vertex)
  4. throws IOException, InterruptedException {
  5. StringBuilder sb = new StringBuilder(vertex.getNumEdges() * 10);
  6. for (Edge<WritableComparable, Writable> edge : vertex.getEdges()) {
  7. addEdge(sb, vertex.getId(), edge);
  8. }
  9. addNodeInfo(vertex, sb);
  10. getRecordWriter().write(new Text(sb.toString()), null);
  11. }
  12. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. /**
  2. * Writes vertex edges (Id, edges) to stream.
  3. *
  4. * @param output The output stream
  5. * @param vertex The vertex to serialize
  6. * @throws IOException
  7. */
  8. private void writeOutEdges(DataOutput output, Vertex<I, V, E> vertex)
  9. throws IOException {
  10. vertex.getId().write(output);
  11. OutEdges<I, E> edges = (OutEdges<I, E>) vertex.getEdges();
  12. edges.write(output);
  13. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, NullWritable, DoubleWritable> vertex,
  4. Iterable<LongIdFriendsList> messages) throws IOException {
  5. for (Edge<LongWritable, DoubleWritable> e: vertex.getEdges()) {
  6. vertex.setEdgeValue(e.getTargetVertexId(), covertToDistance(e.getValue()));
  7. }
  8. vertex.voteToHalt();
  9. }
  10. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, NullWritable, DoubleWritable> vertex,
  4. Iterable<LongIdBloomFilter> messages) throws IOException {
  5. for (Edge<LongWritable, DoubleWritable> e: vertex.getEdges()) {
  6. vertex.setEdgeValue(e.getTargetVertexId(), covertToDistance(e.getValue()));
  7. }
  8. vertex.voteToHalt();
  9. }
  10. }

代码示例来源:origin: grafos-ml/okapi

  1. public void sampleIrrelevantEdges(
  2. Vertex<CfLongId, FloatMatrixWritable, BooleanWritable> vertex) {
  3. if (vertex.getId().isUser()){//only users
  4. Iterable<Edge<CfLongId, BooleanWritable>> edges = vertex.getEdges();
  5. HashSet<CfLongId> relevant = new HashSet<CfLongId>();
  6. for (Edge<CfLongId, BooleanWritable> e : edges) {
  7. relevant.add(e.getTargetVertexId());
  8. }
  9. for (int i=0; i<numberSamples; i++){
  10. CfLongId random = getRandomItemId(relevant);
  11. vertex.addEdge(EdgeFactory.create(random, new BooleanWritable(false)));
  12. }
  13. }
  14. }

代码示例来源:origin: grafos-ml/okapi

  1. private void removeVertex(Vertex<LongWritable, IntWritable, MBMEdgeValue> vertex) {
  2. Set<LongWritable> toRemove = new HashSet<LongWritable>();
  3. final MBMMessage removeMsg = new MBMMessage(vertex.getId(), State.REMOVED);
  4. for (Edge<LongWritable, MBMEdgeValue> e : vertex.getEdges()) {
  5. MBMEdgeValue edgeState = e.getValue();
  6. // remove remaining DEFAULT edges
  7. if (edgeState.getState() == State.DEFAULT) {
  8. sendMessage(e.getTargetVertexId(), removeMsg);
  9. toRemove.add(e.getTargetVertexId());
  10. }
  11. }
  12. for (LongWritable e : toRemove)
  13. vertex.removeEdges(e);
  14. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. /**
  2. * Read vertex edges from an input and set them to the vertex.
  3. *
  4. * @param in The input stream
  5. * @param partition The partition owning the vertex
  6. * @throws IOException
  7. */
  8. private void readOutEdges(DataInput in, Partition<I, V, E> partition)
  9. throws IOException {
  10. I id = conf.createVertexId();
  11. id.readFields(in);
  12. Vertex<I, V, E> v = partition.getVertex(id);
  13. OutEdges<I, E> edges = (OutEdges<I, E>) v.getEdges();
  14. edges.readFields(in);
  15. partition.saveVertex(v);
  16. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
  4. Iterable<LongIdAndValueBloomFilter> messages) throws IOException {
  5. BloomFilter filter = new BloomFilter(numBits, numFunctions, hashType);
  6. for (Edge<LongWritable, DoubleWritable> e : vertex.getEdges()) {
  7. filter.add(new Key(Longs.toByteArray(e.getTargetVertexId().get())));
  8. }
  9. sendMessageToAllEdges(vertex,
  10. new LongIdAndValueBloomFilter(vertex.getValue(), filter));
  11. }
  12. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
  4. Iterable<LongIdAndValueBloomFilter> messages) throws IOException {
  5. for (Edge<LongWritable, DoubleWritable> e: vertex.getEdges()) {
  6. vertex.setEdgeValue(e.getTargetVertexId(),
  7. new DoubleWritable(e.getValue().get()*(-1.0)));
  8. }
  9. vertex.voteToHalt();
  10. }
  11. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
  4. Iterable<LongIdDoubleValueFriendsList> messages) throws IOException {
  5. for (Edge<LongWritable, DoubleWritable> e: vertex.getEdges()) {
  6. vertex.setEdgeValue(e.getTargetVertexId(),
  7. new DoubleWritable(e.getValue().get()*(-1.0)));
  8. }
  9. vertex.voteToHalt();
  10. }
  11. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, NullWritable, DoubleWritable> vertex,
  4. Iterable<LongIdBloomFilter> messages) throws IOException {
  5. BloomFilter filter = new BloomFilter(numBits, numFunctions, hashType);
  6. for (Edge<LongWritable, DoubleWritable> e : vertex.getEdges()) {
  7. filter.add(new Key(Longs.toByteArray(e.getTargetVertexId().get())));
  8. }
  9. sendMessageToAllEdges(vertex,
  10. new LongIdBloomFilter(vertex.getId(), filter, vertex.getNumEdges()));
  11. }
  12. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<WritableComparable, Writable, Writable> vertex,
  3. Iterable<Writable> messages) throws IOException {
  4. for (Edge<WritableComparable, Writable> edge: vertex.getEdges()) {
  5. if (edge.getTargetVertexId().compareTo(vertex.getId()) > 0) {
  6. sendMessage(edge.getTargetVertexId(), vertex.getId());
  7. }
  8. }
  9. vertex.voteToHalt();
  10. }
  11. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<LongWritable, NullWritable,DoubleWritable> vertex,
  3. Iterable<Writable> messages) throws IOException {
  4. for (Edge<LongWritable, DoubleWritable> edge: vertex.getEdges()) {
  5. if (edge.getTargetVertexId().compareTo(vertex.getId()) > 0) {
  6. sendMessage(edge.getTargetVertexId(), vertex.getId());
  7. }
  8. }
  9. vertex.voteToHalt();
  10. }
  11. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<WritableComparable, Writable, Writable> vertex,
  3. Iterable<WritableComparable> messages) throws IOException {
  4. for (WritableComparable msg : messages) {
  5. assert(msg.compareTo(vertex.getId())<0); // This can never happen
  6. for (Edge<WritableComparable, Writable> edge: vertex.getEdges()) {
  7. if (vertex.getId().compareTo(edge.getTargetVertexId()) < 0) {
  8. sendMessage(edge.getTargetVertexId(), msg);
  9. }
  10. }
  11. }
  12. vertex.voteToHalt();
  13. }
  14. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(Vertex<CfLongId, FloatMatrixWritable, FloatWritable> vertex, Iterable<FloatMatrixMessage> messages) throws IOException {
  3. vertex.setValue(new FloatMatrixWritable(FloatMatrix.rand(DIM)));
  4. if(getSuperstep() == 0){
  5. Iterable<Edge<CfLongId, FloatWritable>> edges = vertex.getEdges();
  6. sendMessage(vertex.getId(), emptyMsg); //send message to myself in order to be executed in the next super step
  7. for (Edge<CfLongId, FloatWritable> edge : edges) {
  8. sendMessage(edge.getTargetVertexId(), new FloatMatrixMessage(vertex.getId(), emptyList, edge.getValue().get()));
  9. }
  10. }
  11. vertex.voteToHalt();
  12. }

相关文章