在 PIG 中 tokenize 是如何工作的?
how tokenize works in PIG?
我在下面提到的文件中有一个数据
美国美国欧洲欧洲欧洲欧洲美国
美国 美国 欧洲 欧洲 美国
欧洲 美国
我正在尝试找出美国和欧洲的数量。
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)}
这个输出 smiliar 与 tokenize 定义有何相似之处..?
定义说 "split a string of words (all words in a single tuple)" INTO "a bag of words (each word in a single tuple)"
定义中的 INTO 词袋语句看起来与输出相似,但当我将输出与定义相关联时,无法理解定义中 "split a string of words (all words in a single tuple)" 的含义。
所有单词都在单个元组中..?
分词定义,"Use the TOKENIZE function to split a string of words (all words in a single tuple) into a bag of words (each word in a single tuple). The following characters are considered to be word separators: space, double quote("), coma(,) parenthesis(()), star(*).
有什么帮助...?
您需要使用 FLATTEN 和 TOKENIZE 来取消嵌套 bags/tuples。
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);
我在下面提到的文件中有一个数据
美国美国欧洲欧洲欧洲欧洲美国 美国 美国 欧洲 欧洲 美国 欧洲 美国
我正在尝试找出美国和欧洲的数量。
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)}
这个输出 smiliar 与 tokenize 定义有何相似之处..?
定义说 "split a string of words (all words in a single tuple)" INTO "a bag of words (each word in a single tuple)"
定义中的 INTO 词袋语句看起来与输出相似,但当我将输出与定义相关联时,无法理解定义中 "split a string of words (all words in a single tuple)" 的含义。
所有单词都在单个元组中..?
分词定义,"Use the TOKENIZE function to split a string of words (all words in a single tuple) into a bag of words (each word in a single tuple). The following characters are considered to be word separators: space, double quote("), coma(,) parenthesis(()), star(*).
有什么帮助...?
您需要使用 FLATTEN 和 TOKENIZE 来取消嵌套 bags/tuples。
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);