私はしばらくの間この質問に固執してきました。私は次のようなデータファイルを持っています:豚の袋の値でグルーピング
2012/01/01 Name1 "Category1,Category2,Category3"
2012/01/01 Name2 "Category2,Category3"
2012/01/01 Name3 "Category1,Category5"
各項目はカンマ区切りのカテゴリリストに関連付けられています。私はこのような出力を取得するには、カテゴリ名でグループにできるようにしたいと思います:
Category1 Name1, Name3
Category2 Name1, Name2
...
Category5 Name3
(さらに具体的には、私はアイテムの名前を必要としない - というの項目数だけカウントをカテゴリがするでしょう)
カンマで区切られたカテゴリフィールドを取得し、それをPigバッグに変換するためにUDFを作成しました。 - 実際には、ネストされた袋の値によってグループ分けを行って、私は次のステップに引っかかってい {date: chararray, name: chararray, categories: {t: (category:chararray)}}
:私のデータスキーマは今、このようなものです。私は幸運なしにFOREACHのネストされたステートメントのバリエーションを試しました。たとえば:
x = FOREACH myData
{
categoryNames = FOREACH categories GENERATE category;
GENERATE myData.Name, categoryNames;
}
私の考えでは、構文のこの種のは、私がオーバーGROUPを実行することができます(名前、カテゴリ)のタプルを生成するということでした。しかし、実際の出力はバッグ全体であり、私を平方1に戻しています。進歩する方法についてのアイデアはありません。ヘルプ/フィードバックが最も高く評価されます。ありがとう!
私が達成しようとしていたものと同じように、バッグ上のFLATTENの動作が複数のタプルの生成であることは考えられませんでした。ありがとう! – Inverseofverse