目前我的输出如下:
((130,1))
((131,1))
((132,1))
((133,1))
((137,1))
((138,2))
((139,1))
((140,1))
((142,2))
((143,1))
我想要这样:
130 1
131 1
132 1
我的代码如下:
A = LOAD 'user-links-small.txt' AS (user_a: int, user_b: int);
B = ORDER A BY user_a;
grouped = COGROUP B BY user_a;
C = FOREACH grouped GENERATE COUNT(B);
D = COGROUP C BY $0;
E = FOREACH D GENERATE($0, COUNT($1));
DUMP E;
我正在浏览这些论坛,一些人建议解决这个问题的方法是编写用户定义的函数。我可以尝试一下,但我对 Pig 很陌生,想更详细地了解它的功能。我在 flatten() 上找到了一些东西,但无法真正获得该输出。有没有办法删除如图所示的括号和逗号?预先感谢您的任何帮助!
如果你使用DUMP默认情况下,命令的输出将存储为元组(即转储到函数括号内的所有字段,以分隔符分隔)',')
您可以使用删除第一个支架FLATTEN运算符和第二个括号和',' using STORE命令。
尝试这个
E = FOREACH D GENERATE FLATTEN(($0, COUNT($1)));
STORE E INTO 'output' USING PigStorage(' ');
转到文件夹'output'并检查文件名以part*开头。你会看到这样的输出
130 1
131 1
132 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)