/** * */ package org.archive.hadoop.pig.udf; import java.io.IOException; import java.util.Map; import org.apache.pig.EvalFunc; import org.apache.pig.data.Tuple; import org.mortbay.util.ajax.JSON; /** * A PIG function that generates JSON from Map object. * * @author kenji */ public class ToJsonFunc extends EvalFunc<String> { public ToJsonFunc() { } /* (non-Javadoc) * @see org.apache.pig.EvalFunc#exec(org.apache.pig.data.Tuple) */ @SuppressWarnings("unchecked") @Override public String exec(Tuple input) throws IOException { if (input.size() != 1) throw new IllegalArgumentException("expects exactly one Map argument"); Map<String, Object> value = (Map<String, Object>)input.get(0); String json = value != null ? JSON.toString(value) : null; return json; } }