Package com.thinkaurelius.faunus.mapreduce

Source Code of com.thinkaurelius.faunus.mapreduce.IdentityMap$Map

package com.thinkaurelius.faunus.mapreduce;

import com.thinkaurelius.faunus.FaunusEdge;
import com.thinkaurelius.faunus.FaunusVertex;
import com.thinkaurelius.faunus.mapreduce.util.EmptyConfiguration;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.Edge;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;

/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class IdentityMap {

    public enum Counters {
        VERTEX_COUNT,
        OUT_EDGE_COUNT,
        IN_EDGE_COUNT,
        VERTEX_PROPERTY_COUNT,
        OUT_EDGE_PROPERTY_COUNT,
        IN_EDGE_PROPERTY_COUNT

    }

    public static Configuration createConfiguration() {
        return new EmptyConfiguration();
    }

    public static class Map extends Mapper<NullWritable, FaunusVertex, NullWritable, FaunusVertex> {

        @Override
        public void map(final NullWritable key, final FaunusVertex value, final Mapper<NullWritable, FaunusVertex, NullWritable, FaunusVertex>.Context context) throws IOException, InterruptedException {

            context.getCounter(Counters.VERTEX_COUNT).increment(1l);
            context.getCounter(Counters.VERTEX_PROPERTY_COUNT).increment(value.getProperties().size());

            long edgeCount = 0;
            long edgePropertyCount = 0;
            for (final Edge edge : value.getEdges(Direction.IN)) {
                edgeCount++;
                edgePropertyCount = edgePropertyCount + ((FaunusEdge) edge).getProperties().size();
            }
            context.getCounter(Counters.IN_EDGE_COUNT).increment(edgeCount);
            context.getCounter(Counters.IN_EDGE_PROPERTY_COUNT).increment(edgePropertyCount);

            edgeCount = 0;
            edgePropertyCount = 0;
            for (final Edge edge : value.getEdges(Direction.OUT)) {
                edgeCount++;
                edgePropertyCount = edgePropertyCount + ((FaunusEdge) edge).getProperties().size();
            }
            context.getCounter(Counters.OUT_EDGE_COUNT).increment(edgeCount);
            context.getCounter(Counters.OUT_EDGE_PROPERTY_COUNT).increment(edgePropertyCount);

            context.write(NullWritable.get(), value);

        }
    }
}
TOP

Related Classes of com.thinkaurelius.faunus.mapreduce.IdentityMap$Map

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.