複数行の入力のMyInputFormat
レコード境界の問題に対処することを想定しているカスタムがあります。しかし、UDF ロード関数に入れたとき。次のように:MyInputFormat
import org.apache.hadoop.mapreduce.InputFormat;
public class EccUDFLogLoader extends LoadFunc {
@Override
public InputFormat getInputFormat() {
System.out.println("I am in getInputFormat function");
return new MyInputFormat();
}
}
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
public class MyInputFormat extends TextInputFormat {
public RecordReader createRecordReader(InputSplit inputSplit, JobConf jobConf) throws IOException {
System.out.prinln("I am in createRecordReader");
//MyRecordReader suppose to handle record boundary
return new MyRecordReader((FileSplit)inputSplit, jobConf);
}
}
マッパーごとに出力されますが、出力されI am in getInputFormat function
ませんI am in createRecordReader
。私のコスチューム MyInputFormat を PIG の UDF ローダーに接続する方法について、誰かがヒントを提供できるかどうか疑問に思っています。どうもありがとう。
Amazon EMR で PIG を使用しています。