拆分字符串并使用最后一个值?

时间:2014-11-26 12:37:07

标签: apache-pig

我想将字符串字段拆分为多个部分(空格分隔符)并使用字段的最后一个值。我知道我可以使用strsplit分割数据,但我如何才能获取最后一个值?

例如:输入:

AAA BB CC

SS DD

AA

输出:

CC

DD

AA

感谢

3 个答案:

答案 0 :(得分:2)

您可以将LAST INDEX_OFSUBSTRINGSIZE组合使用。

答案 1 :(得分:2)

输入

AAA BB CC
SS DD
AA

A = load 'input.txt' as (line : chararray);
B = FOREACH A generate line, LAST_INDEX_OF(line,' ') AS ind;  
C = FOREACH B GENERATE (ind>0?SUBSTRING(line,ind+1,ind+3):SUBSTRING(line,0,2)); 
Dump C;

输出

(CC)
(DD)
(AA)

如果最后一个值大小不相同,则使用size()而不是ind + 3

答案 2 :(得分:1)

还有一个解决方案。它适用于所有组合。

A = LOAD 'input.txt' AS line;
B = FOREACH A GENERATE REGEX_EXTRACT(line,'\\s*(\\w+)$',1);
DUMP B;

<强>输出:

(CC)
(DD)
(AA)