我在下面提到的文件中有数据
美国美国欧洲欧洲欧洲欧洲美国
美国美国欧洲欧洲美国
欧洲美国
我想找出美国和欧洲的数量。
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);