我有一个文件max_rank.txt包含:
1,a
2,b
3,c
和第二个文件max_rank_add.txt:
d
e
f
我期待的结果是:
1,a
2,b
3,c,
4,d,
5,e
6,f
所以我想为第二组值生成RANK
,但是从第一组的值开始大于max。
脚本的开头可能如下所示:
existing = LOAD 'max_rank.txt' using PigStorage(',') AS (id: int, text : chararray);
new = LOAD 'max_rank_add.txt' using PigStorage() AS (text2 : chararray);
ordered = ORDER existing by id desc;
limited = LIMIT ordered 1;
new_rank = RANK new;
但是我最后一个问题是,limited
从rank_new
增加new_rank
到{{1}}的价值。
你能提出任何建议吗?
此致 的Pawel
答案 0 :(得分:0)
我找到了解决方案。 这两个脚本都有效:
rank_plus_max = foreach new_rank generate flatten(limited.$0 + rank_new), text2;
rank_plus_max = foreach new_rank generate limited.$0 + rank_new, text2;
这些不起作用:
rank_plus_max = foreach new_rank generate flatten(limited.$0) + flatten(rank_new);
2014-02-24 10:52:39,580 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 10, column 62> mismatched input '+' expecting SEMI_COLON
Details at logfile: /export/home/pig/pko/pig_1393234166538.log