我有一个文件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,但是从大于第一组值的最大值开始。

脚本的Beginig可能看起来像这样:
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_newnew_rank中。

你能给点建议吗?

问候
帕维尔

最佳答案

我找到了解决方案。
这两个脚本都可以工作:

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

10-05 18:54