Apache Pig:从令牌元组中删除停用词?

时间:2016-05-19 06:02:43

标签: join apache-pig stop-words

我试图使用Pig从作业描述关系中删除停用词。然而,我无法加入两种关系,以便将停用词与我的文字相匹配。

我的数据是一个csv文件,每行有两个条目: Job Descriptions

我还有630个英语停用词的列表:

Stopwords

在Pig中,我正在加载这两个文件并按以下方式转换第一个文件:

descrFlat

grunt> describe descrFlat descrFlat: {id: chararray,bag_of_tokenTuples_from_descr::token: chararray} 现在看起来像这样:

J = JOIN stopwords BY $0 RIGHT OUTER, descrFlat BY $0;

thisthis示例类似,我现在正尝试对两个文件进行外联接......

J

...导致grunt> describe J J: {stopwords::word: chararray,descrFlat::id: chararray,descrFlat::bag_of_tokenTuples_from_descr::token: chararray} 的以下结构:

K = FILTER J BY $0 IS NULL;

然而,这并不是使用grunt> dump J 所需的结果;数据只是胡言乱语:

{{1}}

这可能是因为我使用了一包令牌元组而不是上述示例中的简单元组。

Gibberish

1 个答案:

答案 0 :(得分:0)

我发现了自己的错误。以下是descrFlat中的第一列,而它应该指的是第二列($1),其中包含单词。此外,删除不必要的标点有帮助。

J = JOIN stopwords BY $0 RIGHT OUTER, descrFlat BY $0;