AmazonのElastic Map ReduceでPigスクリプト(UDFを使用)を実行しようとしています。 私は自分のUDF内からいくつかの静的ファイルを使用する必要があります。Elastic Map ReduceでPigで分散キャッシュを使用する
私はUDFでこのような何かを:私は私の豚ジョブを実行する上で、しかし
/path/to/myfile.txt私のS3バケットにファイルを保存している
public class MyUDF extends EvalFunc<DataBag> {
public DataBag exec(Tuple input) {
...
FileReader fr = new FileReader("./myfile.txt");
...
}
public List<String> getCacheFiles() {
List<String> list = new ArrayList<String>(1);
list.add("s3://path/to/myfile.txt#myfile.txt");
return list;
}
}
、I例外参照:だから
Got an exception java.io.FileNotFoundException: ./myfile.txt (No such file or directory)
を、私の質問は:どのように私はAmazonのEMRに豚のスクリプトを実行するときにキャッシュファイルを配布し使用していますか?
EDIT:pig-0.9とは異なり、pig-0.6にはgetCacheFiles()という関数がありません。 Amazonはpig-0.6をサポートしていないので、分散キャッシュ処理を行うには別の方法を見つけ出す必要があります。
多分あなたは既にそれを知っているかもしれませんが、他の人のためにAmazonはPig 0.6と0.9.1をサポートしています。http://aws.amazon.com/elasticmapreduce/faqs/#pig-7 –