私は2つの豚の関係に関係する豚のスクリプトを持っています。たとえばAとBです。Aは小さな関係で、Bは大きな関係です。私のUDFは、すべてのAを各マシンのメモリにロードし、Bの処理中に使用する必要があります。現在、私はこのようにしています。
A = foreach smallRelation Generate ...
B = foreach largeRelation Generate propertyOfB;
store A into 'templocation';
C = foreach B Generate CustomUdf(propertyOfB);
次に、「templocation」からすべてのマシンをロードしてAを取得します。これは機能しますが、2つの問題があります。
- 私の理解では、どういうわけかHDFSキャッシュを使用する必要がありますが、関係をHDFSキャッシュに直接ロードする方法がわかりません。
- UDFにファイルをリロードすると、バッグとタプルを直接使用したいときにファイルに出力されたAからの出力を解析するロジックを作成する必要がありました(文字列を解析してバッグに戻すための組み込みのPig java関数はありますか? /タプルフォーム?)。
誰かがそれがどのように行われるべきか知っていますか?