ApachePIGを使用して結合する必要のあるファイルを作成する必要があります。最初のファイルには、このような本のタイトルのリストが含まれており、各タイトルはそれ自体で行にあります。
Ted Dunning, Mahout in Action
Leo Tolstoy, War and Peace
Douglas Adams, The hitchhiker guide to the galaxy.
James Sununu, galaxy III for Dummies
Tom McArthur, The War we went to
2番目のファイルは単語とそのIDのリストです。このような
ted, 12
tom, 13
douglas, 14
galaxy, 15
war, 16
leo, 17
peace, 18
次のような出力を生成するには、これら2つのファイルを結合する必要があります。
「LeoTolstoy、Warandpiece」という行の場合は
17:1,16:1,18:1
「トム・マッカーサー、私たちが行った戦争」という行については、
13:1,16:1
つまり、単語をキーとして結合を実行する必要があります。これまでのところ、私は豚で次のコードを書いています
titles = LOAD 'Titles' AS ( title : chararray );
termIDs = LOAD 'TermIDs' AS ( term:chararray,id:int);
A = SAMPLE titles 0.01;
X = FOREACH A GENERATE STRSPLIT(title,'[ _\\[\\]\\/,\\.\\(\\)]+');
これにより、両方のファイルがロードされ、Xには、対応する行に出現する用語を含む各バッグのバッグのリストが含まれます。このような:
((ted,dunning,mahout,in,action))
((leo,tolstoy,war,and,peace))
土曜日の夜遅くなるため、UDFを作成するか、ストリーミングを使用しないと、JOINステップへの道を見つけることができません。PIGプリミティブのみを使用して実行することも可能ですか。