package org.archive.hadoop.pig.udf; import java.io.IOException; import org.apache.pig.EvalFunc; import org.apache.pig.data.Tuple; import org.archive.hadoop.mapreduce.CDXMapper; public class toSURT extends EvalFunc<String> { CDXMapper converter; public toSURT() { converter = new CDXMapper(); converter.setNoRedirect(true); converter.setSkipOnCanonFail(true); } @Override public String exec(Tuple tuple) throws IOException { if (tuple == null || tuple.isNull()) { return null; } if (tuple.size() == 1) { String line = (String)tuple.get(0); return converter.convertLine(line); } else if (tuple.size() == 2) { String key = (String)tuple.get(0); String value = (String)tuple.get(1); return converter.convertLine(key + " " + value); } else { throw new IOException("CDX tuple must be length 1 or 2"); } } }