This project has retired. For details please refer to its Attic page.
LongDoubleDoubleAdjacencyListVertexInputFormat xref
View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.giraph.io.formats;
19  
20  import org.apache.giraph.edge.Edge;
21  import org.apache.giraph.edge.EdgeFactory;
22  import org.apache.hadoop.io.DoubleWritable;
23  import org.apache.hadoop.io.LongWritable;
24  import org.apache.hadoop.mapreduce.InputSplit;
25  import org.apache.hadoop.mapreduce.TaskAttemptContext;
26  
27  /**
28   * InputFormat for reading graphs stored as (ordered) adjacency lists
29   * with the vertex ids longs and the vertex values and edges doubles.
30   * For example:
31   * 22 0.1 45 0.3 99 0.44
32   * to repesent a vertex with id 22, value of 0.1 and edges to nodes 45 and 99,
33   * with values of 0.3 and 0.44, respectively.
34   */
35  public class LongDoubleDoubleAdjacencyListVertexInputFormat
36      extends AdjacencyListTextVertexInputFormat<LongWritable, DoubleWritable,
37      DoubleWritable> {
38  
39    @Override
40    public AdjacencyListTextVertexReader createVertexReader(InputSplit split,
41        TaskAttemptContext context) {
42      return new LongDoubleDoubleAdjacencyListVertexReader(null);
43    }
44  
45    /**
46     * VertexReader associated with
47     * {@link LongDoubleDoubleAdjacencyListVertexInputFormat}.
48     */
49    protected class LongDoubleDoubleAdjacencyListVertexReader extends
50        AdjacencyListTextVertexReader {
51  
52      /**
53       * Constructor with
54       * {@link AdjacencyListTextVertexInputFormat.LineSanitizer}.
55       *
56       * @param lineSanitizer the sanitizer to use for reading
57       */
58      public LongDoubleDoubleAdjacencyListVertexReader(LineSanitizer
59          lineSanitizer) {
60        super(lineSanitizer);
61      }
62  
63      @Override
64      public LongWritable decodeId(String s) {
65        return new LongWritable(Long.parseLong(s));
66      }
67  
68      @Override
69      public DoubleWritable decodeValue(String s) {
70        return new DoubleWritable(Double.parseDouble(s));
71      }
72  
73      @Override
74      public Edge<LongWritable, DoubleWritable> decodeEdge(String s1, String s2) {
75        return EdgeFactory.create(new LongWritable(Long.parseLong(s1)),
76            new DoubleWritable(Double.parseDouble(s2)));
77      }
78    }
79  
80  }