現在、Amazon EMR上でPigスクリプトを実行して、S3から一連のファイルをロードしてから、フィルター処理を実行してデータをにグループ化するphone number
ため、データはのようになります(phonenumber:chararray, bag:{mydata:chararray})
。次に、各電話番号を異なるS3バケット(おそらく、アクセスできる異なるアカウントのバケット)に保存する必要があります。ここorg.apache.pig.piggybank.storage.MultiStorage
では最適な使用法のようですが、私が直面している2つの問題があるため、機能しません。
- 多くの電話番号(約20,000)があり、各電話番号を異なるS3バケットに保存するのは非常に遅く、プログラムのメモリも不足しています。
- ルックアップテーブルを検索して、バケットを格納する場所を決定する方法はありません。
だから私は誰かが助けることができるかどうか疑問に思っていますか?2つ目は、おそらく自分のUDFストア関数を作成することで解決できますが、1つ目は、どのように解決するのでしょうか。ありがとう。