私は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つのオプションがあります。周囲のtryにcatch句を追加し、既存のcatchブロックに例外を追加し、try / catchで囲みます。)、エラーはシフトしますが、常にtehreです。
そして、プログラムの構造(メソッド宣言など)を変更できるかどうかさえわかりません。
これを解決するにはどうすればよいですか。
A quick guide on udf http://wiki.apache.org/pig/UDFManual
あなたが豚を知っているか、簡単な方法を知っているなら、基本的に私がやろうとしていることは、トランザクションが行われた日の何時に「time、id、amount」タイプの入力文字列をチェックすることです。
ありがとう