标记化如何在 PIG 中工作?

学习Java

我在下面提到的文件中有一个数据

美国 美国 欧洲 欧洲 欧洲 欧洲 美国 美国 美国 美国 欧洲 欧洲 美国 欧洲 美国

我试图找出美国和欧洲的数量。

1) inp = LOAD '/user/countries.txt' as (singleline); 
dump inp;

Output  

(USA USA EUROPE EUROPE EUROPE EUROPE USA)
(USA USA EUROPE EUROPE USA)
(EUROPE USA)

Is this output in tuple...?

2) tknz = FOREACH inp GENERATE TOKENIZE(singleline) as Col_Words;
dump tknz;

Output

{(USA),(USA),(EUROPE),(EUROPE),(EUROPE),(EUROPE),(USA)}
{(USA),(USA),(EUROPE),(EUROPE),(USA)}
{(EUROPE),(USA)}

这个输出如何类似于标记化定义..?

定义说“将一串单词(单个元组中的所有单词)拆分为“一袋单词(单个元组中的每个单词)”

INTO a bag of words 定义中的语句看起来与输出相似,但是当我将输出与定义相关联时,我无法理解定义中“拆分一串单词(单个元组中的所有单词)”的含义。

所有单词都在单元组中..?

Tokenize 定义,“使用 TOKENIZE 函数将一串单词(单个元组中的所有单词)拆分为一个单词袋(单个元组中的每个单词)。以下字符被认为是单词分隔符:空格、双引号("), coma(,) 括号(()), star(*)."

有什么帮助...?

VK_217

您需要使用FLATTEN和 TOKENIZE 来取消嵌套包/元组。

tknz = FOREACH inp GENERATE FLATTEN(TOKENIZE(singleline)) as Col_Words;
tknz_group = GROUP tknz ALL;
tknz_count = FOREACH tnnz_group GENERATE group,COUNT(tknz.Col_Words);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章