A = LOAD 'input' USING PigStorage(',') AS(f1:int,f2:chararray);;
B = FOREACH A GENERATE f1, FLATTEN(STRSPLIT(f2,'_'));
C = FOREACH B GENERATE $0,COUNT(TOBAG($1..));
DUMP C;
pigscript2:脚本2:
A = LOAD 'input' USING PigStorage(',') AS(f1:int,f2:chararray);;
B = FOREACH A GENERATE f1, COUNT(TOKENIZE(f2,'_'));
DUMP B;
1条答案
按热度按时间jbose2ul1#
是的,这是可能的
Option1
你需要使用STRSPLIT
函数'_'
作为分隔符并转换成包然后使用COUNT
函数获取最终值。Option2
很简单,只是TOKENIZE
第二部分'_'
作为分隔符并获取计数。输入:
pigscript1:脚本1:
pigscript2:脚本2:
输出: