我有几个日志和做一些过滤。结果我有几个变量,每一个都是统计数。我将它们保存在不同的文件中,如下所示:
STORE (FOREACH (GROUP A ALL) GENERATE COUNT(A)) INTO '$save_dir/A_result';
STORE (FOREACH (GROUP B ALL) GENERATE COUNT(B)) INTO '$save_dir/B_result';
STORE (FOREACH (GROUP C ALL) GENERATE COUNT(C)) INTO '$save_dir/C_result';
任何一行的结果-只有一个数字。如何将它们连接或合并到一个变量中,以存储到单个文件中,而不是存储到三个不同的文件中?
我试过这种方法:
B_count = FOREACH (GROUP B ALL) GENERATE COUNT(B) as b1;
result_record = FOREACH (GROUP A all) GENERATE
'my_results' AS name,
COUNT(A) as a1,
B_count.b1 as b1;
STORE result_record INTO '$save_dir/total';
但它不起作用。
2条答案
按热度按时间hts6caw31#
我用@vkÙu 217的创意做了这个:
这将生成一个包含列中3条记录的文件。这没关系。但我还是有几个问题:
pig可以按不同的顺序写结果。所以有时是a\u count/b\u count/c\u count,但有时是-c\u count/a\u count/b\u count等等,所以结果没用。。。
如果任何一个计数器等于零,pig就不写0。跳过这一行。
不知道如何将计数器的名称添加到结果文件中。
4smxwvx52#
创建关系以存储单个计数,将它们合并到另一个关系中,并将它们存储到单个文件中