如何解析字段的最后一个字符并替换为猪中的另一个字符?

How to parse last character of a field and replace with another character in pig?

我在列 'fruits' 中有这样的数据:

apple/green/
apple/red/
apple/brown

我需要做的是删除第 1 行和第 2 行末尾的“/”字符。无需在第 3 行中进行任何更改。我的输出应该是

apple/green
apple/red
apple/brown

我试过这样做..

b = foreach a generate (fruits), ENDSWITH(fruits,'/')==true ?    REPLACE(SUBSTRING(fruits, (INT)LAST_INDEX_OF(fruits, '/'), (INT)SIZE(fruits)),'');

基本上我试图在结尾处用 space ' ' 替换 '/' 符号。

但是我在使用此命令时遇到错误。有人可以帮忙吗?

Bincond 运算符具有以下语法:

(condition ? value_if_true : value_if_false) 

因此,else部分是必须的,这样写:

b = foreach a generate (fruits), ENDSWITH(fruits,'/')?    REPLACE(SUBSTRING(fruits, (INT)LAST_INDEX_OF(fruits, '/'), (INT)SIZE(fruits)),'') :fruits ;

或者更简单,考虑使用 REPLACE 函数:

b = foreach a generate REPLACE(fruits,'[/]$','');