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

bxpogfeg  于 2021-06-25  发布在  Pig
关注(0)|答案(3)|浏览(394)

我想把一个字符串字段拆分成几个部分(空格分隔符)并使用字段的最后一个值。我知道我可以用strsplit分割数据,但是我怎么能得到最后一个值呢?
例如:输入:

AAA BB CC

SS DD

AA

输出:

CC

DD

AA

谢谢

smtd7mpg

smtd7mpg1#

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

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

输出:

(CC)
(DD)
(AA)
jtw3ybtb

jtw3ybtb2#

输入

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

cigdeys3

cigdeys33#

您可以通过最后一个索引、子字符串和大小的组合来实现这一点。

相关问题