我想将字符串字段拆分为多个部分(空格分隔符)并使用字段的最后一个值。我知道我可以使用strsplit分割数据,但我如何才能获取最后一个值?
例如:输入:
AAA BB CC
SS DD
AA
输出:
CC
DD
AA
感谢
答案 0 :(得分:2)
您可以将LAST INDEX_OF,SUBSTRING和SIZE组合使用。
答案 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)