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

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

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

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)}

此输出如何与标记化定义类似。

Defination表示“将一串单词(所有单词都放在一个元组中)” INTO“一包单词(每个单词都放在一个元组中”)

当我将输出与定义关联时,定义中的INTO单词袋语句看起来与输出类似,但无法捕捉定义中的“将单词字符串分割(单个单词中的所有单词)”的含义。

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

标记化定义,“使用TOKENIZE函数将一串单词(单个元组中的所有单词)拆分为一包单词(单个元组中的每个单词)。以下字符被视为单词分隔符:空格,双引号(“),逗号(,)括号(()),星号(*)。”

任何帮助...?

最佳答案

您需要结合使用TOKENIZE的FLATTEN来取消袋/元组的嵌套。

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);

07-24 15:59