Pig用户定义的函数不理解什么是eval函数()

时间:2016-05-18 16:12:09

标签: hadoop apache-pig

我正在尝试分析下面的代码并且无法弄清楚什么是Evalfunction()及其真正的作用:

package myudfs;
  import java.io.IOException;
  import org.apache.pig.EvalFunc;
  import org.apache.pig.data.Tuple;

  public class UPPER extends EvalFunc<String>
  {
    public String exec(Tuple input) throws IOException {
        if (input == null || input.size() == 0)
            return null;
        try{
            String str = (String)input.get(0);
           return str.toUpperCase();
        }catch(Exception e){
            throw new IOException("Caught exception processing input row ", e);
        }
    }
  }

有人能解释一下这个功能吗?

1 个答案:

答案 0 :(得分:2)

是否预先确认输入是否有效 - 如果不是则返回null,否则它获取输入的第一个字符,大写只是第一个字母并返回该大写字符。如果输入不是字符串类型,则try catch完全用于转换。