@Override public Vertex<LongWritable, LongWritable, LongWritable> getCurrentVertex() throws IOException, InterruptedException { Vertex<LongWritable, LongWritable, LongWritable> vertex = conf.createVertex(); String tokens[] = saperator.split(getRecordReader().getCurrentValue().toString()); List<Edge<LongWritable, LongWritable>> edges = Lists.newArrayListWithCapacity(tokens.length - 1); long weight = ((long) 1.0) / (tokens.length - 1); LongWritable VertexId = new LongWritable(Long.parseLong(tokens[0])); LongWritable VertexValue = new LongWritable(Long.parseLong(tokens[1])); System.out.println(VertexValue); String edgeId[] = tokens[2].split(","); /* for(int n=2;n<tokens.length-1;n++) { edges.add(EdgeFactory.create(new LongWritable(Long.parseLong(tokens[n])),new LongWritable(weight))); } */ for (String edge : edgeId) { edges.add( EdgeFactory.create(new LongWritable(Long.parseLong(edge)), new LongWritable(weight))); } // vertex.initialize(VertexId, (LongWritable) edges); vertex.initialize(VertexId, VertexValue, edges); return vertex; }
@Override public Vertex<LongWritable, DoubleWritable, FloatWritable> getCurrentVertex() throws IOException, InterruptedException { Vertex<LongWritable, DoubleWritable, FloatWritable> vertex = conf.createVertex(); String[] tokens = neighborSeparator.split(getRecordReader().getCurrentValue().toString()); List<Edge<LongWritable, FloatWritable>> edges = Lists.newArrayListWithCapacity(tokens.length - 1); for (int n = 1; n < tokens.length; n++) { String[] parts = weightSeparator.split(tokens[n]); edges.add( EdgeFactory.create( new LongWritable(Long.parseLong(parts[0])), new FloatWritable(Float.parseFloat(parts[1])))); } LongWritable vertexId = new LongWritable(Long.parseLong(tokens[0])); vertex.initialize(vertexId, new DoubleWritable(), edges); return vertex; }
@Override public Vertex<LongWritable, VertexDataStructure, FloatWritable> getCurrentVertex() throws IOException, InterruptedException { Text line = getRecordReader().getCurrentValue(); Vertex<LongWritable, VertexDataStructure, FloatWritable> vertex = getConf().createVertex(); try { JSONArray jsonVertex = new JSONArray(line.toString()); vertex.initialize( new LongWritable(jsonVertex.getLong(0)), new VertexDataStructure(jsonVertex.getLong(1), new HashSet<Long>())); JSONArray jsonEdgeArray = jsonVertex.getJSONArray(2); for (int i = 0; i < jsonEdgeArray.length(); ++i) { JSONArray jsonEdge = jsonEdgeArray.getJSONArray(i); Edge<LongWritable, FloatWritable> edge = EdgeFactory.create( new LongWritable(jsonEdge.getLong(0)), new FloatWritable((float) jsonEdge.getDouble(1))); vertex.addEdge(edge); } } catch (JSONException e) { throw new IllegalArgumentException("next: Couldn't get vertex from line " + line, e); } return vertex; }