我在下面提到的文件中有数据
美国美国欧洲欧洲欧洲美国 美国美国欧洲欧洲美国 欧洲美国
我试图找出美国和欧洲的数量。
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"一包单词(单个元组中的每个单词)"
INTO一个单词语句在定义中看起来与输出类似,但是我无法理解"分割一串单词(单个元组中的所有单词)"当我将输出与定义联系起来时的定义。
所有单词都在单元组中。?
Tokenize定义,"使用TOKENIZE函数将一串单词(单个元组中的所有单词)分成一个单词包(单个元组中的每个单词)。以下字符被视为单词分隔符:空格,双引号("),逗号(,)括号(()),星号(*)。"
任何帮助......?
答案 0 :(得分:0)
您需要使用带有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);