我必须使用 Apache PIG 将需要合并的文件。第一个文件包含书名列表,就像这样,每个书名都单独一行。
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
第二个文件是单词及其 ID 的列表。像这样
ted, 12
tom, 13
douglas, 14
galaxy, 15
war, 16
leo, 17
peace, 18
我需要连接这两个文件以生成如下输出:
对于“列夫·托尔斯泰,战争与作品”这一行,它应该产生
17:1,16:1,18:1
对于“汤姆·麦克阿瑟,我们参加的战争”这句话,它应该产生
13:1,16:1
换句话说,我需要使用单词作为键来执行连接。到目前为止我已经在pig中编写了以下代码
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 包含 BAGS 列表,每个包包含相应行上出现的术语。像这样:
((ted,dunning,mahout,in,action))
((leo,tolstoy,war,and,peace))
由于周六晚上迟到的原因,我无法在不编写UDF或使用流的情况下找出JOIN步骤的方法。是否有可能仅使用 PIG 原语来完成?