import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class NellVertexMapper extends Mapper <Object , Text, LongWritable, Text>{
@Override
protected void map(Object key, Text value, Context context)
throws IOException, InterruptedException {
String line=value.toString();
if(!line.startsWith("#")){
String[] strs = line.trim().split("\\s+");
String srcstring=strs[0];
String[] srcsplit=srcstring.trim().split(":");
String src=srcsplit[srcsplit.length - 1];
String relationstr=strs[1];
String[] relationsplit=relationstr.trim().split(":");
String relation=relationsplit[relationsplit.length -1];
String deststring=strs[2];
String[] destsplit=deststring.trim().split(":");
String target=destsplit[destsplit.length - 1];
// System.out.println("source : "+src+" relation : "+relation+" target : "+target);
long srchash=Math.abs(hash(src));
srchash=srchash%(1<<20);
long targethash=Math.abs(hash(target));
targethash=targethash%(1<<20);
if(srchash<0 || targethash <0){
System.out.println("TESTNEGATIVEMapper");
}
context.write(new LongWritable(srchash), new Text(src));
context.write(new LongWritable(targethash), new Text(target));
}
// TODO Auto-generated method stub
}
public static long hash(String string) {
long h = 1125899906842597L; // prime
int len = string.length();
for (int i = 0; i < len; i++) {
h = 31*h + string.charAt(i);
}
return h;
}
public static void main(String[] args){
String test ="jkds";
System.out.println(hash(test));
}
}