我是java世界的新手。但基本上我正在尝试用pig-latin编写一个用户定义的函数。
以下是相关代码。
public class time extends EvalFunc<String>{
public String exec(Tuple input) throws IOException {
if ((input == null) || (input.size() == 0))
return null;
try{
String time = (String) input.get(0) ;
DateFormat df = new SimpleDateFormat("hh:mm:ss.000");
Date date = df.parse(time);
String timeOfDay = getTimeOfDay(date);
return timeOfDay;
} catch (IOException e) {
throw e;
}
}
所以基本上输入是一个元组......我检查元组是否为空......然后将该日期字符串转换为时间对象......然后解析时间部分......然后是函数
getTimeOfDay(date) returns a string... like breakfast, lunch dinner.. or empty string depending on the time hours..
现在的问题是我的日食说和错误(红线)
Date date = df.parse(time);
String timeOfDay = getTimeOfDay(date);
说
Unhandled exception type ParseException
但无论我尝试什么(给了我 3 个选项.. 将 catch 子句添加到周围的 try,将异常添加到现有的 catch 块并用 try/catch 包围..),错误会发生变化.. 但始终是 tehre。
而且我什至不确定我可以改变程序的结构..(方法声明等)..
我该如何解决这个问题。
A quick guide on udf http://wiki.apache.org/pig/UDFManual
如果你知道猪..或者知道一个简单的方法..那么基本上我要做的是..给定一个“时间,id,金额”类型的输入字符串,检查交易是在一天中的什么时间进行的?
谢谢